Tôi muốn tạo một eventHandler truyền sự kiện và một số tham số. Vấn đề là hàm không nhận được phần tử. Đây là một ví dụ:
doClick = function(func){
var elem = .. // the element where it is all about
elem.onclick = function(e){
func(e, elem);
}
}
doClick(function(e, element){
// do stuff with element and the event
});
'Elem' phải được xác định bên ngoài chức năng ẩn danh. Làm cách nào để lấy phần tử đã qua để sử dụng trong hàm ẩn danh? Có cách nào để làm việc này không?
Còn addEventListener thì sao? Tôi dường như không thể vượt qua sự kiện thông qua addEventListener phải không?
Cập nhật
Tôi dường như đã khắc phục được sự cố với 'cái này'
doClick = function(func){
var that = this;
this.element.onclick = function(e){
func(e, that);
}
}
Nơi chứa this.element mà tôi có thể truy cập trong hàm.
AddEventListener
Nhưng tôi đang thắc mắc về addEventListener:
function doClick(elem, func){
element.addEventListener('click', func(event, elem), false);
}