Maison >interface Web >js tutoriel >Comment puis-je supprimer en toute sécurité les écouteurs d'événements JavaScript dans leurs propres gestionnaires ?
En JavaScript, la suppression d'un écouteur d'événements dans la définition du même gestionnaire d'événements peut poser des problèmes. Pour résoudre ce problème, envisagez les stratégies suivantes :
Une approche consiste à utiliser des fonctions nommées :
var click_count = 0; function myClick(event) { click_count++; if (click_count == 50) { // to remove canvas.removeEventListener('click', myClick); } } // to add canvas.addEventListener('click', myClick);
Alternativement, vous pouvez clôturer via le compteur de clics en utilisant une gestion indirecte des événements pattern :
var myClick = (function (click_count) { var handler = function (event) { click_count++; if (click_count == 50) { // to remove canvas.removeEventListener('click', handler); } }; return handler; })(0); // to add canvas.addEventListener('click', myClick);
Si vous avez besoin que chaque élément ait son propre compteur, vous pouvez utiliser un générateur de fonctions :
var myClick = function (click_count) { var handler = function (event) { click_count++; if (click_count == 50) { // to remove canvas.removeEventListener('click', handler); } }; return handler; }; // to add 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!