È necessario utilizzare le funzioni denominate.
Inoltre, la click
variabile deve essere esterna al gestore per incrementare.
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: potresti chiudere attorno alla click_counter
variabile in questo modo:
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);
In questo modo è possibile incrementare il contatore su più elementi.
Se non lo desideri e desideri che ognuno abbia il proprio contatore, procedi nel seguente modo:
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: avevo dimenticato di nominare il gestore restituito nelle ultime due versioni. Fisso.
if(click == 50) {
dovrebbero essereif( click === 50 )
oif( click >= 50 )
- non cambieranno l'output, ma per ragioni di sanità mentale questi controlli hanno più senso.