我想創建一個eventHandler來傳遞事件和一些參數。問題是該函數沒有得到該元素。以下是一個示例:帶參數的Javascript事件處理程序
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傳遞事件嗎?
更新
我似乎和解決問題「這個」
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);
}
你有ELEM,元素,參與你的問題的元素。你能減少混淆嗎? – mihai 2012-04-03 19:44:22
對不起,我試圖舉出一個我的情況的例子,但是這樣做並不順利,我更新了代碼。 – sebas2day 2012-04-03 19:54:33
您是否在尋找'e.target' /'e.currentTarget'? – Rolf 2015-12-17 10:08:07