Adlandırılmış işlevleri kullanmanız gerekir.
Ayrıca, click
değişkenin artırılması için işleyicinin dışında olması gerekir.
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:click_counter
Değişkeni şöyle kapatabilirsiniz :
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);
Bu şekilde sayacı birkaç öğe arasında artırabilirsiniz.
Bunu istemiyorsanız ve her birinin kendi sayacı olmasını istiyorsanız, bunu yapın:
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 ));
DÜZENLEME: Son iki sürümde iade edilen işleyiciyi adlandırmayı unutmuştum. Sabit.
if(click == 50) {
içinif( click === 50 )
yaif( click >= 50 )
çıktıyı değiştirmeyeceklerdir, ancak akıl sağlığı nedeniyle bu kontroller daha anlamlı olacaktır.