sha*_*jia 7 javascript internet-explorer javascript-events
我厌倦了编写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?
});
Run Code Online (Sandbox Code Playgroud)
我尝试使用IE的内置调试工具,但它只是告诉我'这个'是一个对象,但仅此而已......那么IE的attachEvent中的'this'是什么?
在由特定于IE的attachEvent方法绑定的事件处理程序中,this引用全局window对象:
btn.attachEvent('onclick', function(event) {
alert(this === window); // true
}
Run Code Online (Sandbox Code Playgroud)
相反,在由标准addEventListener方法绑定的事件处理程序中,this引用从中触发事件处理程序的DOM元素.
| 归档时间: |
|
| 查看次数: |
1384 次 |
| 最近记录: |