2012-12-17 36 views
0

我試圖給需要該事件處理函數中執行DOM事件,如的onmouseover,的onclick等,通過名稱作爲函數參數,像這樣:如何動態分配DOM事件然後執行它?

... 

doSomething(target, 'onmouseover'); 

doSomething : function(tgt, evt) 
{ 
    ... 
    o.evt = function() { 
     alert(evt); 
    } 
    ... 
} 

... 

的分配不會引發任何錯誤,所以我猜,它在語法上是正確的,但它也沒有做出警報。爲什麼?

(請不建議使用框架,我想了解我的錯誤,以及如何獲得這個管理。)

回答

2

可以動態使用[]符號指定事件:

Demo

var obj = { 
    doSomething : function(tgt, evt) 
    { 
     tgt[evt] = function() { 
     alert(evt); 
     } 
    } 
}; 

obj.doSomething(document.getElementById("test"), 'onmouseover'); 
​ 
+0

請注意,OP的代碼不在對象文字中。 +1捕捉'obj.evt',其中'obj [evt]'可能意圖。 –

+0

非常感謝。這是訣竅。 – user1014412

+0

@JanDvorak感謝+1,你對對象字面意思是正確的,我懷疑OP確實有一個,但只是把這個聲明縮小了。 – MrCode

相關問題