Il y a 24 div-objets en attente/en écoute pour un clic de souris. Après avoir cliqué sur un objet div, je veux enlever le EventListener
de tous les 24 div-objets.Supprimer EventListener dans JavaScript après qu'un événement s'est produit?
for (var i=1;i<=24;i++){
document.getElementById('div'+i).addEventListener('click',function(event){
for (var z=1;z<=24;z++){
document.getElementById('div'+z).removeEventListener()//Problem lies here
}
//Some other code to be run after mouseclick
},false);
}
Le problème est que le removeEventListener
est niché dans addEventListener
et je dois définir le type, l'auditeur, la légende sous forme d'attributs à la méthode removeEventListener
. Et je pense qu'il est impossible de définir l'auditeur à cause de l'imbrication.
J'ai essayé aussi de définir un nom de fonction, mais il n'a pas travaillé:
for (var i=1;i<=24;i++){
document.getElementById('div'+i).addEventListener('click',function helpme(event){
for (var z=1;z<=24;z++){
document.getElementById('div'+z).removeEventListener('click',helpme,false);
}
//Some other code to be run after mouseclick
},false);
}
Salut Jani! Ça a marché! Je veux vous remercier beaucoup! J'ai essayé de comprendre toute la journée sans aucun succès – einstein
Ancien sujet, mais pour une raison quelconque, cela ne fonctionnait pas pour moi. Une alternative qui a fonctionné pour moi (pour arrêter l'écouteur d'événement) était de placer l'écouteur d'événement à une fonction vide. – MikeM