我想创建一个 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);
}
}
在这里,this.element
包含了可以在函数中访问的内容。
addEventListener
但是我想知道关于 addEventListener
:
function doClick(elem, func){
element.addEventListener('click', func(event, elem), false);
}
e.target
/e.currentTarget
? - Rolf