Vous devez utiliser des fonctions nommées.
En outre, la click
variable 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 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 sur plusieurs éléments.
Si vous ne le souhaitez pas et que chacun d'entre eux ait son propre compteur, procédez comme suit:
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 renvoyé dans les deux dernières versions. Fixé.
if(click == 50) {
devraient êtreif( click === 50 )
ouif( click >= 50 )
- ils ne changeront pas la sortie, mais pour des raisons de bon sens, ces vérifications ont plus de sens.