因为事件处理程序的作用是根据指定它的方式来确定的,所以不能认为this会始终等于事件目标。故而,最好还是使用event.srcElement比较保险。例如:
var btn = document.getElementById("myBtn"); btn.onclick = function () { alert(window.event.srcElement === this); //ture }; btn.attachEvent("onclick", function (event) { alert(event.srcElement === this); //false })
在第一个事件处理程序中,srcElement属性等于this,但在第二个事件处理程序中,这两者的值不相同。