ฉันต้องการสร้าง EventHandler ที่ส่งผ่านเหตุการณ์และพารามิเตอร์บางอย่าง ปัญหาคือฟังก์ชันไม่ได้รับองค์ประกอบ นี่คือตัวอย่าง:
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' นอกฟังก์ชันที่ไม่ระบุตัวตน ฉันจะรับองค์ประกอบที่ส่งผ่านเพื่อใช้ภายในฟังก์ชันนิรนามได้อย่างไร มีวิธีทำไหม?
แล้ว addEventListener ล่ะ? ดูเหมือนว่าฉันจะไม่สามารถส่งต่อเหตุการณ์ผ่าน addEventListener ได้เลยใช่ไหม
อัปเดต
ดูเหมือนว่าฉันจะแก้ไขปัญหาด้วย "this"
doClick = function(func){
var that = this;
this.element.onclick = function(e){
func(e, that);
}
}
ในที่นี้มีสิ่งนี้องค์ประกอบที่ฉันสามารถเข้าถึงได้ในฟังก์ชัน
addEventListener
แต่ฉันสงสัยเกี่ยวกับ addEventListener:
function doClick(elem, func){
element.addEventListener('click', func(event, elem), false);
}