11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

J'ai créé un script d'infobulle qui me permet d'enregistrer une infobulle sur un élément de deux façons :

<anytag id="myelement">
	<div class="infobulle">infobulle-texte</div>
	<script type="text/javascript">
		document.getElementById('myelement').onmouseover = infobulleStart ;
		document.getElementById('myelement').onmouseout = infobulleStop ;
	</script>
	my content
</anytag>
<anytag onmouseover="infobulleStart();" onmouseout="infobulleStop();">
	<div class="infobulle">infobulle-texte</div>
	my content
</anytag>

Dans les deux cas, je suis obligé d'ajouter des propriétés au noeud racine (id ou onmouseover/onmouseout), ce que je ne souhaite pas faire.
N'y a-t-il pas un autre moyen ? Quelque chose qui ressemblerait à :

<anytag>
	<div class="infobulle">infobulle-texte</div>
	<script type="text/javascript">
		this.parent.onmouseover = infobulleStart ;
		this.parent.onmouseout = infobulleStop ;
	</script>
	my content
</anytag>

Je pensais sinon à écrire une fonction d'initialisation pour enregistrer en une seule passe tous les éléments à infobuller. Mais je ne vois pas comment identifier "tous les éléments qui ont un fils div.infobulle".

Une idée ?

Cordialement,
elvex
Modifié par elvex (04 Jun 2006 - 23:55)
Salut,

Je suggère une saine lecture sur ce thème :

http://bennolan.com/behaviour/

Et pour identifier les éléments "qui ont un fils infobulle", il suffit de chercher tous les noeuds de type div dont la classe est infobulle, et d'utiliser l'attribut "parentNode" pour remonter au noeud parent.

OK ? Smiley cligne