คุณต้องใช้ฟังก์ชันที่มีชื่อ
นอกจากนี้click
ตัวแปรต้องอยู่นอกตัวจัดการเพื่อเพิ่มค่า
var click_count = 0;
function myClick(event) {
click_count++;
if(click_count == 50) {
canvas.removeEventListener('click', myClick);
}
}
canvas.addEventListener('click', myClick);
แก้ไข:คุณสามารถปิดรอบ ๆclick_counter
ตัวแปรดังนี้:
var myClick = (function( click_count ) {
var handler = function(event) {
click_count++;
if(click_count == 50) {
canvas.removeEventListener('click', handler);
}
};
return handler;
})( 0 );
canvas.addEventListener('click', myClick);
ด้วยวิธีนี้คุณสามารถเพิ่มตัวนับในองค์ประกอบต่างๆได้
หากคุณไม่ต้องการสิ่งนั้นและต้องการให้แต่ละคนมีตัวนับของตัวเองให้ทำสิ่งนี้:
var myClick = function( click_count ) {
var handler = function(event) {
click_count++;
if(click_count == 50) {
canvas.removeEventListener('click', handler);
}
};
return handler;
};
canvas.addEventListener('click', myClick( 0 ));
แก้ไข: ฉันลืมตั้งชื่อตัวจัดการที่ถูกส่งคืนในสองเวอร์ชันล่าสุด แก้ไขแล้ว.
if(click == 50) {
ควรเป็นif( click === 50 )
หรือif( click >= 50 )
- พวกเขาจะไม่เปลี่ยนผลลัพธ์ แต่ด้วยเหตุผลด้านสุขภาพการตรวจสอบเหล่านี้มีความหมายมากกว่า