Comment removeEventListener qui est la méthode addEventListener avec fonction anonyme?
function doSomethingWith(param)
{
document.body.addEventListener(
'scroll',
function()
{
document.write(param);
},
false
); //An event that I want to remove later
}
setTimeout(
function()
{
document.body.removeEventListener('scroll', HANDLER ,false);
//What HANDLER should I specify to remove the anonymous handler above?
},
3000
);
doSomethingWith('Test. ');
- Double Possible de JavaScript: enlever l'écouteur d'événement
Vous devez vous connecter pour publier un commentaire.
Vous ne pouvez pas. Vous devez utiliser un nom de fonction ou de magasin de référence en quelque sorte.
Le mieux serait de le faire de manière structurée, de sorte que vous pouvez identifier les différents gestionnaires et les supprimer. Dans l'exemple ci-dessus, vous avez évidemment ne pouvait supprimer le dernier gestionnaire.
Mise à jour:
Vous pouvez créer votre propre gestionnaire gestionnaire (:)) :
Ensuite, vous pouvez l'utiliser avec:
DÉMO
i
etlisteners
"privé".Vous ne pouvez pas, vous avez besoin d'une référence à la fonction:
Vous pourriez aussi le faire comme ça:
Ensuite, vous pouvez retirer l'écouteur d'événement comme ceci:
const disposerFn = () => { scope.removeEventListener(type, handler, capture); }
disposerFn.type = type;
return disposerFn;