搜索
javascript - 关于js的事件问题。求各位说下!
迷茫
迷茫 2017-04-10 16:30:00
[JavaScript讨论组]

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

var event=event||window.event;

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

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回复(3)
PHP中文网

event 其实就是形参。

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

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

原谅我不会 PS。

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

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

  • IE6/7/8只支持 window.event 不支持参数传入。

  • Firefox 只支持参数传入不支持其它方式。

  • IE9/Opera/Safari/Chrome 两种方式都支持。

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


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

var event = event || window.event;

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

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

PHP中文网

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

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

还不行?

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

动一下手,记忆更深刻~

阿神

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号