前言
实际上你看不看这文章,对你目前来讲,其实也没多大影响,这是我的真心话哈哈
刚学前端的时候,有很多教程或者资料,都会教绑定监听事件函数时,可能会看到这么一句代码
function (e) {
var e = e || window.event;
}
当时给你指导的人/资料都会跟你解释,这是为了解决浏览器兼容性,为了兼容ie和Firefox。其实这是一种很笼统的说法,因为绑定监听事件的方式不同,可能情况不一样。但是不论怎样,这么写准没错。
然而时至今日(2019-05-20),这种处理是否已经还有必要呢,毕竟技术的东西变化很快,一些老旧的知识,是否该摒弃,别让其再迷惑你的脑袋,让代码更加累赘。
监听的绑定方式
为了方便描述e = e || window.event现象。先在这里总结绑定监听为四类,分别举例如下:
<!-- 方式一 -->
<!-- 脚本直接写在html里 -->
<div onclick="console.log()"></div>
<!-- 方式二 -->
<!-- html里绑定函数 -->
<div onclick="handlerClick()"></div>
// 方式三
// 在js里直接绑定
document.getElementById('example').onclick = function() {...}
// 方式四
// 用绑定事件函数绑定
var obj = document.getElementById('example');
function handlerClick () {...}
// ie8含8以下用attachEvent,监听事件要带'on'
obj.addEventListener ? obj.addEventListener('click', handlerClick, false) : obj.attachEvent('onclick', handlerClick);
event的总结
我直接上总结了,以前的资料常说的,Firefox浏览器只认识监听绑定的函数的第一个参数event,而IE8以下只认识window.event;
现在经过测试,要纠正一点就是,Firefox浏览器现在也支持window.event了。估计是版本比较老的火狐才不支持吧
所以现在唯一特立独行的就是让人苦恼的IE8(含8)以下的了。所以时至今日的新的总结就是:
方式一
方式二
方式三
方式四
大总结
以后要用event的话,所有浏览器统一当做window.event来处理就行了。火狐一般会自动更新为最新版的,所以前的顾虑基本上没有了。
未经授权请勿复制文章发文!
也可关注 K前端 微信公众号查看哦!
留言与评论(共有 0 条评论) |