Vous devez utiliser des fonctions nommées.
De plus, la variable click
doit être en dehors du gestionnaire pour être incrémentée.
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);
EDIT: Vous pouvez fermer autour de la variable click_counter
comme ceci:
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);
De cette façon, vous pouvez incrémenter le compteur à travers plusieurs éléments.
Si vous ne voulez pas, et que vous voulez chacun d'avoir son propre compteur, faites ceci:
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));
EDIT:J'avais oublié de nommer le gestionnaire étant retourné dans les deux dernières versions. Fixé.
trivial mais pour les futures références 'if (cliquez sur == 50) {' 'doit être si (cliquez sur === 50)' 'ou si (cliquez sur> = 50)' - ils ne changeront pas la sortie, mais pour des raisons de santé mentale, ces contrôles ont plus de sens. – rlemon
Bonne question ... comment puis-je le supprimer si je n'ai pas accès au contenu? Je veux supprimer les popups pour les boutons onclick sur l'utilisation de greasemonkey pour d'autres sites, mais à moins que je puisse référencer la fonction par son nom, je ne trouve pas de moyen de l'enlever. – JasonXA