Vous avez besoin d'utiliser des fonctions nommées.
Aussi, l' click
variable doit être à l'extérieur de la gestionnaire de l'incrémenter.
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 pourriez fermer autour de l' click_counter
variable 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 cela, et que vous voulez à chacun de disposer de son propre compteur, puis faire 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 être retournés dans les deux dernières versions. Fixe.