首页 > 关于js的事件问题。求各位说下!

关于js的事件问题。求各位说下!

在 JS 中事件函数的参数 event 是默认的对不对;我们一般做兼容的时候 会这样写 :

var event=event||window.event;

但是 但是有时在点击 事件函数 object.onclick=function(e){}; 这个 e 就是指 event 吗,是因为兼容问题吗?如果可以请详细 事件对象 这个问题!俯首拜谢!


这里的e是形参,实参就是window.event,理解形参和实参就能懂了


event 其实就是形参。

所以,你的代码应该这样写:

object.onclick = function(e){
    var event = e || window.event;
    // 从此往后的代码,event 就是事件
};

原谅我不会 PS。

在 1 中,这两个 e 是同一个。

在 3 中,window.event 是 IE 使用的。默认把 event 对象作为,当任何事件发生时,通过一个全局变量 event 传递事件。

在 2 中,event 是你定义的变量。不管上面使用了何种方式,现在这个 event 变量保存了事件的对象。


在你的提问中,这段代码:

var event = event || window.event;

在你的代码中,这 3 个 event,虽然名字一样,但是他们完全不相同。

第一个是临时变量,第二个是形参,第三个是 window 的一个事件属性。


不知道是不是那个对象?
怎么半?

obj.onclick=function(e){
    alert(e===(window.event||event))
}

还不行?

for(ev in e) 
for (ev in window.event||event)

动一下手,记忆更深刻~

【热门文章】
【热门文章】