Necesita usar funciones con nombre.
Además, la click
variable debe estar fuera del controlador para incrementar.
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);
EDITAR: Puede cerrar la click_counter
variable de esta manera:
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 esta manera puede incrementar el contador en varios elementos.
Si no quieres eso y quieres que cada uno tenga su propio contador, haz esto:
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 ));
EDITAR: Me había olvidado de nombrar el controlador que se devolvió en las últimas dos versiones. Fijo.
if(click == 50) {
deberían serif( click === 50 )
oif( click >= 50 )
, no cambiarán la salida, pero por razones de cordura, estas comprobaciones tienen más sentido.