J'ai un gestionnaire d'événements qui est appelé six fois lorsque je clique sur un lien.Le gestionnaire d'événement Onclick est exécuté plusieurs fois lorsque je clique sur un lien
var elems = elem.getElementsByTagName('a');
var cntr = 0;
for(var a in elems) {
AttachEvent(elems[cntr], 'click', function(e) {
this.reporturl = this.href;
document.getElementById('reportpopup').style.visibility = "visible";
return false;
});
}
J'utilise Firefox 3.5 actuellement si ceci est utilisé pour AttachEvent:
function AttachEvent(obj,evt,fnc,useCapture){
if (!useCapture) useCapture=false;
if (undefined == obj || null == obj)
return;
if (obj.addEventListener){
obj.addEventListener(evt,fnc,useCapture);
return true;
} else if (obj.attachEvent) return obj.attachEvent("on"+evt,fnc);
else{
MyAttachEvent(obj,evt,fnc);
obj['on'+evt]=function(){ MyFireEvent(obj,evt); };
}
}
La valeur this.href
est le même à chaque fois, et il n'y a que trois liens qui correspondent à mes getElementsByTagName
. Donc, j'ai attaché un événement à mon lien, et quand je clique sur l'un des trois, il est appelé six fois avec les mêmes informations de lien.
Une idée pourquoi cela peut-il se produire?
Merci, j'ai oublié d'incrémenter mon cntr. –