11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour,
J'aimerais ajouter abonner dynamiquement des fonctions aux évènement onmousemove et onmouseout de certains éléments de ma page html.

J'ai écrit ceci :


monelement.setAttributeNode(document.createAttribute("onMouseMove"));
monelement.setAttributeNode(document.createAttribute("onMouseOut"));
monelement.setAttribute("onMouseMove","ShowLabel(event,'ctl00_cphMain_textInfosdocs')");                 
monelement.setAttribute("onMouseOut","HideLabel()");
monelement.removeAttribute("title");


Ca marche bien sous firefox mais pas sous internet explorer.

J'ai aussi essayé d'écrire :

monelement.onMouseMove = new function(){ShowLabel(event,'ctl00_cphMain_textInfosdocs');};

mais là ça ne marche dans aucun des navigateurs.

Avez-vous une autre idée ?

merci
Modifié par mathmax (06 Jun 2007 - 02:30)
A mon avis, tu te compliques la vie avec l'écriture n°1.
Et dans l'écriture n°2, tu dois avoir un problème de majuscules...

Pour faire ce que tu cherches, moi je fais juste un truc du style :


monelement.onmouseover=mafonction1;
monelement.onmouseout=mafonction2;
monelement.onclick=mafonction3;


Avec les fonctions définies par ailleurs normalement : i.e.


function mafonction1(){
...code...}


Car je trouve (mais c'est une opinion) plus propre de séparer l'attribution de... l'attribut, du code de la fonction proprement dit.

Et cela fonctionne sous FF / IE et KQ.
Les autres, je ne sais pas.

Edit : Je crois maintenant que je connais ta prochaine question dont la réponse se trouve d'ailleurs sur le forum mais je ne sais plus exactement où...
Modifié par aCOSwt (06 Jun 2007 - 13:09)
le problème c'est que quand onmousemove est levé, je dois appeler ma fonction avec 2 paramètres : event et un id. C'est ça qui ne plait pas au navigateur, que je mette des majuscules ou non.
Salut. C'est tout simple :
monelement.onmousemove = function(event) {
  ShowLabel(event || window.event, 'ctl00_cphMain_textInfosdocs');
};