2011-03-15 43 views
0

該程序取自Pro JavaScript技術書,用於爲元素創建類似懸停的功能。JavaScript「規範化事件對象」

我不明白作者的意思是什麼時,他說,在評論中,規範化事件對象。

你能告訴我

一)爲什麼這是必要的,並解釋如果wasn`t標準化

B將發生什麼)如何代碼提供實現的效果

謝謝。

var div = document.getElementsByTagName('div')[0]; 

div.onmouseover = div.onmouseout = function(e) { 

//Normalize the Event object 
e = e || window.event; 

//Toggle the background colover of the <div> 
this.style.background = (e.type == 'mouseover') ? '#EEE' : '#FFF'; 

}; 

回答

3

這是指window.event,IE的非標準版本的事件對象。如果它沒有正常化,至少會在一個瀏覽器中崩潰。

如果參數是truthy(事件參數設置正確),代碼的作用是將e設置爲自身(實際上是非操作)。如果沒有(在IE中),它將其設置爲window.event