本程序取自Pro JavaScript Techniques一书,用于为Element创建类似悬停的功能。
我不明白作者在评论中说“规范化事件”对象时的含义。
你能告诉我吗
a)为什么这是必要的,解释如果没有正常化将会发生什么
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';
};
答案 0 :(得分:3)
它指的是window.event
,IE的非标准版本的事件对象。如果它没有被标准化,它将在至少一个浏览器中中断。
如果参数为truthy(正确设置了事件参数),代码所做的是将e
设置为自身(基本上是无操作)。如果不是(在IE中),则将其设置为window.event
。