Es necesario utilizar funciones con nombre.
Además, la variable click
debe estar fuera del controlador para aumentar.
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: Se podría cerrarse alrededor de la variable click_counter
así:
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);
esta manera se puede incrementar el contador a través de varios elementos.
Si usted no quiere eso, y desea que cada uno tenga su propio contador, a continuación, hacer esto:
EDITAR
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));
: siendo devueltosme había olvidado de nombrar el manejador en las últimas dos versiones. Fijo.
trivial, pero para las futuras referencias si '(click == 50) {' 'si debería haber (clic === 50)' ', o si (haga clic en> = 50)' - no van a cambiar la salida, pero por razones de cordura estas verificaciones tienen más sentido. – rlemon
Una buena pregunta ... ¿cómo la elimino si no tengo acceso al contenido? Quiero eliminar las ventanas emergentes de los botones onclick on que usan greasemonkey para otros sitios, pero a menos que pueda hacer referencia a la función por nombre, no parece encontrar una manera de eliminarla. – JasonXA