Saya ingin membuat eventHandler yang meneruskan event dan beberapa parameter. Masalahnya adalah fungsinya tidak mendapatkan elemen. Berikut ini contohnya:
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' harus ditentukan di luar fungsi anonim. Bagaimana saya bisa mendapatkan elemen yang diteruskan untuk digunakan dalam fungsi anonim? Apakah ada cara untuk melakukan ini?
Dan bagaimana dengan addEventListener? Saya sepertinya tidak bisa melewatkan acara melalui addEventListener sama sekali, bukan?
Memperbarui
Sepertinya saya memperbaiki masalah dengan 'ini'
doClick = function(func){
var that = this;
this.element.onclick = function(e){
func(e, that);
}
}
Dimana ini berisi this.element yang bisa saya akses dalam fungsinya.
AddEventListener
Tapi saya bertanya-tanya tentang addEventListener:
function doClick(elem, func){
element.addEventListener('click', func(event, elem), false);
}