Bạn cần sử dụng các chức năng được đặt tên.
Ngoài ra, click
biến cần phải nằm ngoài bộ xử lý để tăng.
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: Bạn có thể đóng xung quanh click_counter
biến như thế này:
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);
Bằng cách này, bạn có thể tăng bộ đếm trên một số yếu tố.
Nếu bạn không muốn điều đó và muốn mỗi người có một quầy riêng, thì hãy làm điều này:
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: Tôi đã quên đặt tên cho trình xử lý được trả lại trong hai phiên bản trước. Đã sửa.
if(click == 50) {
nênif( click === 50 )
hoặcif( click >= 50 )
- chúng sẽ không thay đổi đầu ra, nhưng vì lý do rõ ràng, các kiểm tra này có ý nghĩa hơn.