微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – IE的attachEvent中有什么’this’

我厌倦了编写jQuery,所以我决定学习一些原始的 JavaScript.
IE的attachEvent中的某些东西让我很困惑.这是代码.
var btn = document.getElementById('myBtn');

btn.onclick = function(){
   alert(window.event.srcElement === this); //true,I kNow why.
};

btn.attachEvent('onclick',function(event){
   alert(event.srcElement === this); //fasle,but why?
});

我尝试使用IE的内置调试工具,但它只是告诉我’这个’是一个对象,但仅此而已……
那么IE的attachEvent中的’this’是什么?

解决方法

在由特定于IE的attachEvent方法绑定的事件处理程序中,这引用了全局窗口对象
btn.attachEvent('onclick',function(event) {
    alert(this === window); // true
}

相反,在由标准addEventListener方法绑定的事件处理程序中,这指的是触发事件处理程序的DOM元素.

原文地址:https://www.jb51.cc/js/156999.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐