标准的事件绑定函数是 addEventListener
函数,而 IE 浏览器(IE9 以下)则是用 attachEvent
。
// 实现一个通用的,跨多种浏览器的时间绑定函数 function addEvent(el, type, fn) { if (window.addEventListener) { el.addEventListener(type, fn, false); } else if (window.attachEvent) { el.attachEvent(‘on‘ + type, fn); } else { el[‘on‘ + type] = fn; } }
IE 事件处理函数中的 this
在 IE 事件处理函数当中 this
的值并不等于被绑定元素,而是等于 window
对象。
var btn = document.getElementById("myButton"); btn.attachEvent("onclick", function(event) { alert(this === window); // true alert(this.id) // undefined });
而在标准事件绑定当中,this
的值等于被绑定的元素。
var btn = document.getElementById("myButton"); btn.addEventListener("click", function(event) { alert(this === btn); // true alert(this.id); // myButton alert(this === event.currentTarget); // true });
时间: 2024-08-07 04:07:41