04-03-2010, 03:01 PM
(Modification du message : 04-03-2010, 03:06 PM par Sephi-Chan.)
Oui, c'est pénible. Mais on a d'excellents outils pour ne pas être emmerdés. Contrairement à CSS…
Avec jQuery, la méthode à utiliser est mouseouver() ça pourrait donner.
En revanche, comme tu n'est plus dans du Javascript in-line, les arguments à passer (tels que ton 47) doivent être transmis autement en script.
Pour ma part, j'exploite le côté XML de XHTML en faisant une entorse à ce dernier en utilisant des attributs personnalisés.
Et je peux récupérer cette valeur ainsi (en reprenant le fragment de code) :
Voilà. Certains n'aiment pas, ils utilisent alors des plugins comme jQuery Metadata. Moi je trouve que c'est une approche pragmatique.
Alors c'est clair que ce n'est pas valide : pour l'être, il faut créer un DTD à soi qui change les règles de validation (en autorisant la balise <area /> à recevoir un attribut territory_id, par exemple). Mais après on tombe dans le débat de la sémantique : va-t-on briser la sémantique du document en ajoutant de tels attributs ? Et après tout, pourquoi être valide ? Etc.
Petit note à ce sujet, HTML 5 autorise les attributs personnalisés. Il utilise la syntaxe suivante :
Sephi-Chan
Avec jQuery, la méthode à utiliser est mouseouver() ça pourrait donner.
$('#map area').mouseover(function(event){
/* Dans ce contexte, this pointera sur l'élément survolé. */
/* Et plutôt que return false, on utilisera event.prevendDefault(); */
});
En revanche, comme tu n'est plus dans du Javascript in-line, les arguments à passer (tels que ton 47) doivent être transmis autement en script.
Pour ma part, j'exploite le côté XML de XHTML en faisant une entorse à ce dernier en utilisant des attributs personnalisés.
<area shape="poly" coords="…" href="#" territory_id="47" />
Et je peux récupérer cette valeur ainsi (en reprenant le fragment de code) :
$('#map area').mouseover(function(event){
var territory_id = $(this).attr('territory_id');
/* Je fais c'que je veux, avec mes cheveux. */
event.prevendDefault();
});
Voilà. Certains n'aiment pas, ils utilisent alors des plugins comme jQuery Metadata. Moi je trouve que c'est une approche pragmatique.
Alors c'est clair que ce n'est pas valide : pour l'être, il faut créer un DTD à soi qui change les règles de validation (en autorisant la balise <area /> à recevoir un attribut territory_id, par exemple). Mais après on tombe dans le débat de la sémantique : va-t-on briser la sémantique du document en ajoutant de tels attributs ? Et après tout, pourquoi être valide ? Etc.
Petit note à ce sujet, HTML 5 autorise les attributs personnalisés. Il utilise la syntaxe suivante :
<area shape="poly" coords="…" href="#" data-territory_id="47" />
Sephi-Chan