Maison >interface Web >js tutoriel >Comment supprimer efficacement les écouteurs d'événements JavaScript de leurs définitions ?
Suppression des écouteurs d'événements JavaScript dans les définitions d'écouteurs
Lorsque vous essayez de supprimer un écouteur d'événements dans sa définition d'écouteur, les utilisateurs JavaScript peuvent rencontrer des problèmes en raison de la liaison de contexte. Cet article présente des approches pour résoudre ce problème et supprimer efficacement les écouteurs d'événements.
Approche 1 : Utilisation de fonctions nommées
Au lieu de fonctions anonymes, définissez une fonction nommée et attribuez-la à l'écouteur d'événement. Cela garantit que la fonction peut être référencée ultérieurement pour être supprimée.
var click_count = 0; function myClick(event) { click_count++; if (click_count == 50) { // Remove the event listener canvas.removeEventListener('click', myClick); } } // Add the event listener canvas.addEventListener('click', myClick);
Approche 2 : Fermeture avec variable de compteur de clics
La fermeture permet à la fonction d'écoute d'accéder aux variables définies hors de son champ d'application. Dans ce cas, encapsulez la variable du compteur de clics dans la fonction.
var myClick = (function (click_count) { var handler = function (event) { click_count++; if (click_count == 50) { // Remove the event listener canvas.removeEventListener('click', handler); } }; return handler; })(0); // Add the event listener canvas.addEventListener('click', myClick);
Approche 3 : compteur de clics comme argument de fonction
Si différents éléments ont besoin de leurs propres compteurs de clics , créez une nouvelle fonction qui prend le compteur de clics comme argument.
var myClick = function (click_count) { var handler = function (event) { click_count++; if (click_count == 50) { // Remove the event listener canvas.removeEventListener('click', handler); } }; return handler; }; // Add the event listener canvas.addEventListener('click', myClick(0));
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!