js易错总结

来源:互联网 发布:程序员的自我修养txt 编辑:程序博客网 时间:2024/06/05 08:00

1. addEventListener()添加的匿名函数将无法移除

var btn = document.getElementById("myBtn");btn.addEventListener("click", function(){    alert("Hello");}, false);//绑定事件btn.removeEventListener("click", function(){    alset("Hello");}, false);//移除事件//使用这种方法移除事件会失败,必须使用命名函数才有效:var btn = document.getElementById("myBtn");var handler = function(){    alert("Hello");}btn.addEventListener("click", handler, false);btn.removeEventListener("click", handler, false);

2. IE中的事件处理程序的this

var btn = document.getElementById("myBtn");btn.attachEvent("onclick", function(){    alert(this === window);    //true});//在使用attachEvent()方法的情况下,事件处理程序会在全局作用域中运行,因此this等于window;而在使用DOM0级方法的情况下,事件处理程序会在其所属元素的作用域内运行。

因此,获取事件对象应该采用如下通用方法:

 var evt = evt || window.event

获取事件的目标元素应采用:

var target = evt.srcElement || evt.target
0 0