javascript下给元素添加事件的方法与代码
javascript下给元素添加事件的方法与代码
发布时间:2016-12-30 来源:查字典编辑
摘要:最简单的是这样:动态添加onclick事件:varbObj=document.getElementById("bu");bObj.oncli...

最简单的是这样:

<inputtype="button"onclick="alert(this.value)"value="我是button"/>

动态添加onclick事件:

<inputtype="button"value="我是button"id="bu">

<scripttype="text/javascript">

varbObj=document.getElementById("bu");

bObj.onclick=objclick;

functionobjclick(){alert(this.value)};

</script>

如果使用匿名函数function(){},则如下面所示:

<inputtype="button"value="我是button"id="bu">

<scripttype="text/javascript">

varbObj=document.getElementById("bu");

bObj.onclick=function(){alert(this.value)};

</script>

上面的方法其实原理都一样,都是定义onclick属性的值。值得注意的是,如果多次定义obj.onclick,例如:obj.onclick=method1;obj.onclick=method2;obj.onclick=method3,那么只有最后一次的定义obj.onclick=method3才生效,前两次的定义都给最后一次的覆盖掉了。

再看IE中的attachEvent:

<inputtype="button"value="我是拉登"id="bu">

<scripttype="text/javascript">

varbObj=document.getElementById("bu");

bObj.attachEvent("onclick",method1);

bObj.attachEvent("onclick",method2);

bObj.attachEvent("onclick",method3);

functionmethod1(){alert("第一个alert")}

functionmethod2(){alert("第二个alert")}

functionmethod3(){alert("第三个alert")}

</script>

执行顺序是method3>method2>method1,先进后出,与堆栈中的变量相似。需要注意的是attachEvent中第一个参数是on开头的,可以是onclick/onmouseover/onfocus等等

据说(未经确认验证)在IE中使用attachEvent后最好再使用detachEvent来释放内存

再看看Firefox中的的addEventListener:

<inputtype="button"value="我是布什"id="bu">

<scripttype="text/javascript">

varbObj=document.getElementById("bu");

bObj.addEventListener("click",method1,false);

bObj.addEventListener("click",method2,false);

bObj.addEventListener("click",method3,false);

functionmethod1(){alert("第一个alert")}

functionmethod2(){alert("第二个alert")}

functionmethod3(){alert("第三个alert")}

</script>

可以看到,在ff中的执行顺序是method1>method2>method3,刚好与IE相反,先进先出。需要注意的是addEventListener有三个参数,第一个是不带“on”的事件名称,如click/mouseover/focus等。

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新Javascript教程学习
热门Javascript教程学习
编程开发子分类