2011-07-04 58 views
1

我有下面的代碼調用一個不錯的閃亮標準complient方式的Javascript函數:)。請注意,我必須發送elementsList[i]的函數(this關鍵字不會adaquate)作爲事件listerner被連接到它的侄子(對於一個更好的詞想)Javascript將addEventListener轉換爲attachEvent

此而受損代碼將有效地找到控制元素用於elementList [i]中當前節點的動態行爲,併爲其添加一個單擊事件偵聽器。當它被觸發時,它將點擊的節點傳遞給切換功能。

elementsList[i].previousSibling.lastChild.addEventListener 
("click", (function(el){return function(){toggle(el)};})(elementsList[i]),false); 

事情是它不與IE8及以下在所有的工作,並不顧花費大多數早晨試圖找到一個變通我只是不能得到它打球的。如果有人知道如何將其翻譯成IE crapo代碼,我會很高興看到它。

+1

正如我已經評論你的上一個問題,你應該閱讀http://www.quirksmode.org/js/events_advanced.html –

回答

2

你試過

elementsList[i].previousSibling.lastChild.attachEvent 
("onclick", (function(el){return function(){toggle(el)};})(elementsList[i]),false); 
+0

這是如何工作??????我一直在嘗試幾個小時的類似變化。我確定我已經嘗試過了! – YsoL8

+0

attachEvent需要兩個參數:事件名稱和函數,所以「false」是不必要的 –

+0

「el」實際上指的是IE中單擊的元素嗎? - 試圖找到處理程序中預期參數的規格。 – scunliffe

0

2個潛在的建議。

1)在項目中包含jQuery和使用他們的X瀏覽器事件綁定(或mootools或其他一些LIB)

2)並非如此推薦,推出自己的X瀏覽器事件綁定