11486 sujets

JavaScript, DOM et API Web HTML5

Pages :
(reprise du message précédent)

Bonjour,
Il y a une autre façon de récupérer l'id de l'élément cliqué :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
	<head>
		<title>quel id</title>

		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15" /> 
		<meta http-equiv="Content-Script-Type" content="text/javascript" />
		<meta http-equiv="Content-Language" content="fr" />

		<script type="text/javascript"><!--
// basé sur script de koala 64
var oO =
{
	connect: function(oElem, sEvType, fn, bCapture)
	{
		return document.addEventListener ?
			oElem.addEventListener(sEvType, fn, bCapture):
			oElem.attachEvent ?
				oElem.attachEvent('on' + sEvType, fn):
				false;
	},

	cancelClick: function(e)
	{
		if(e && e.stopPropagation && e.preventDefault)
		{
			e.stopPropagation();
			e.preventDefault();
		}
		else if(e && window.event)
		{
			window.event.cancelBubble = true;
			window.event.returnValue = false;
		}

		return false;
	},

	quelId: function(e)
	{
		
		e = e || window.event;
		var el = e.target || e.srcElement;
		if(el.nodeType==3)el=el.parentNode
		if(el.id)
		{
			alert(el.id)
			// Empèche l'action normale du lien
			if(el.nodeName.toLowerCase()=='a')oO.cancelClick(e);
		}
  } 
};

oO.connect(document, 'click', oO.quelId, false);

		//--></script>
	</head>
	<body>
<a href="#" id="riri">coucou</a>
<p><a href="#" id="loulou">attention</a></p>
<div id="fifi"> et encore</div>
	</body>
</html>

Edit > extension aux éléments autres que des liens, plus d'action au clavier dans ce cas Smiley confus
Modifié par chmel (22 Aug 2007 - 00:06)
Et bien un grand merci à Koala, chmel et QuentinC qui m'auront bien aidé et appris pas mal de choses.

- QuentinC, concernant ton script, je l'ai testé mais il ne semble pas fonctionner, j'ai essayé de chercher mais je ne vois pas pourquoi. Un grand merci pour ton aide et tes explications

- Koala64, ton script fonctionne mais par contre si je clique sur un élément ayant un id qui se trouve dans d'autres éléments ayant chacun un id, la fonction se lance autant de fois qu'il y aura d'élément pour remonter à l'élément père conteneur. En tout cas je tiens, toi aussi, à te remercier pour tes explications et ta patience/

-chmel, parfait, la fonction s'arrête après le premier id, donc c'est ce que je voulais. Merci à toi.

- ainsi qu'Olivier et cNeo
Modifié par sylvainbucule (21 Aug 2007 - 13:27)
Re-salut,

je déterre ce topic tout récent car j'ai apparemment un conflit.

J'ai donc utilisé le script de chmel pour récupérer l'id d'un élément cliqué.

Le problème est que ce script m'empeche de valider les formulaires dans ma page qui ont un id sur le bouton submit.

De quoi cela vient-il ? (chmel si tu passes par là ...)

J'utilise donc une classe unique sur mon bouton pour ne pas avoir à utiliser d'id.
Modérateur
Salut,

ça vient de oO.cancelClick(e);

Ce que tu peux faire, c'est ajouter une condition du type :
...
		if(el.id && el.id != 'soumettre')
		{
					alert(el.id)
					oO.cancelClick(e);
		}
...
pour un code xhtml du type :
<input type="submit" id="soumettre" value="envoyer" />

Modifié par koala64 (21 Aug 2007 - 17:46)
Tout à fait Koala Smiley smile
ou pour ne bloquer que les liens :

if(el.id)
  {
  alert(el.id)
  if(el.nodeName.toLowerCase()=='a'){oO.cancelClick(e)};
  }

Modifié par chmel (23 Aug 2007 - 14:35)
Pages :