【JavaScript】attachEvent 与addEventListener区别

本文详细对比了attachEvent与addEventListener两种事件绑定方法的不同之处,包括适用的浏览器、针对的事件类型、参数个数、事件执行优先级及this引用等方面的差异。

一、 适应的浏览器不同

attachEvent方法适用于IE    addEventListener方法适用于FF

二、针对的事件不同

attachEvent中的事件带on   而addEventListener中的事件不带on

三、参数的个数不同

attachEvent方法两个参数:第一个参数为事件名称,第二个参数为接收事件处理的函数; addEventListener 有三个参数:第一个参数表示事件名称(不含 on,如 "click");第二个参数表示要接收事件处理的函数;第三个参数是一个bool值,一般为false,第三个参数叫做useCapture,是一个boolean值,就是true or false,如果送出true的话就是瀏览器会使用Capture方式,false的话是Bubbling,只有在特定状况下才会有影响,通常建议是false

四、执行事件的优先级不同

五、对this的引用不同

holder_elem为dom

if (holder_elem.attachEvent) {

                    holder_elem.attachEvent('onfocus', function() {

                        placeEvent(holder_elem);

                    });

                } else {

                    holder_elem.addEventListener('focus', function() {

                        placeEvent(this);

                    }, false);

                }

此时attachEvent中,holder_elem依然为dom,而addEventListener中,holder_elem为Event对象,this指向了holder_elem

转载于:https://my.oschina.net/ChrisKempson/blog/59636

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值