11548 sujets
Salut sacapuss_
Le deuxième paramètre de ta fonction removeEventListener doit être la référence vers la fonction passée à addEventListener
Par exemple :
Tu peux aussi faire :
Dans ton exemple, tu définies une fonction dans le removeEventListener
Le deuxième paramètre de ta fonction removeEventListener doit être la référence vers la fonction passée à addEventListener
Par exemple :
function monListener() {
}
window.addEventListener("event", monListener, false);
window.removeEventListener("event", monListener, false);
Tu peux aussi faire :
window.addEventListener("event", function monListener() {
// Faire quelque chose
// Supprimer l'eventListener
window.removeEventListener("event", monListener, false);
}, false);
Dans ton exemple, tu définies une fonction dans le removeEventListener
POdy à tout à fait raison.
Cela ne marche pas parce que "tu définies une fonction dans le removeEventListener" : ce n'est pas parce que le code est strictement identique que c'est la même fonction.
Tu crée deux fonctions distinctes qui font des actions identiques.
Donc tu bind la fonction1 et tu essaye ensuite d'unbinder (cocorico) la fonction2 qui bien que fonctionnellement identique reste un objet distinct.
Cela ne marche pas parce que "tu définies une fonction dans le removeEventListener" : ce n'est pas parce que le code est strictement identique que c'est la même fonction.
Tu crée deux fonctions distinctes qui font des actions identiques.
Donc tu bind la fonction1 et tu essaye ensuite d'unbinder (cocorico) la fonction2 qui bien que fonctionnellement identique reste un objet distinct.