Olayı ve bazı parametreleri geçiren bir eventHandler yapmak istiyorum. Sorun, işlevin öğeyi almamasıdır. İşte bir örnek:
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' anonim işlevin dışında tanımlanmalıdır. Anonim işlev içinde kullanılmak üzere iletilen öğeyi nasıl edinebilirim? Bunu yapmanın bir yolu var mı?
Peki addEventListener ne olacak? Olayı addEventListener aracılığıyla hiç geçiremiyorum, değil mi?
Güncelleme
Sorunu "bu" ile çözmüş gibiydim
doClick = function(func){
var that = this;
this.element.onclick = function(e){
func(e, that);
}
}
Bu öğenin bulunduğu yer, işlevde erişebileceğim.
AddEventListener
Ama addEventListener'ı merak ediyorum:
function doClick(elem, func){
element.addEventListener('click', func(event, elem), false);
}