2011-03-15 51 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