详解javascript事件绑定使用方法
程序员文章站
2022-04-20 19:01:15
...
由于html是从上至下加载的,通常我们如果在head部分引入javascript文件,那么我们都会在javascript的开头添加window.onload事件,防止在文档问加载完成时进行DOM操作所出现的错误。如果有多个javascript文件,那么极有可能出现多个window.onload事件,但是最后起作用的只有一个,这时候就需要使用事件绑定来解决这个问题了。
IE方式
attachEvent(事件名称, 函数),绑定事件处理函数
detachEvent(事件名称, 函数),解除绑定
DOM方式
addEventListener(事件名称,函数, 捕获)
removeEventListener(事件名称, 函数, 捕获)
这段js代码,运行结果是弹出b,因为有两个oBtn的点击事件,但是只执行了最后一个,这时候就体现出事件绑定的重要性了。
当你使用事件绑定的时候,那么两次点击事件都会执行,只是执行顺序在不同浏览器是不同的。在IE中是自下而上执行,而在其他浏览器中是自上而下,不过由于alert的特殊性我们可以看出差别,其他语句基本等同于没有差别,但是在对于一些对时间要求严格是事件的使用时还是需要注意的,比如之前有一篇文章图片轮播中的setInterval对时间的细微的差别最后导致滚动混乱。 基于原生javascript的图片轮播domo
最后将我们的代码整理成函数,便于之后的使用
function myAddEvent(obj, ev, fn) { if(obj.attachEvent) { obj.attachEvent('on'+ev, fn); } else { obj.addEventListener(ev, fn, false); } }
这时候如果需要使用多个window.onload事件其实就和使用多个oBtn.onclick事件差不多了。如下调用函数即可。
myAddEvent(window,'load',function () { alert('a'); }); myAddEvent(window,'load',function () { alert('b');
上一篇: mysql基础使用浅谈(1)_MySQL
推荐阅读
-
JavaScript实现父子dom同时绑定两个点击事件,一个用捕获,一个用冒泡时执行顺序的方法
-
javascript - jQuery给动态添加的元素绑定事件的问题?
-
JavaScript 中的 this使用方法详解
-
详解JavaScript按概率随机生成事件
-
Javascript循环绑定事件的示例代码_javascript技巧
-
jQuery中关于live绑定多个事件整理的详解
-
JavaScript鼠标事件是什么?JavaScript鼠标事件详解
-
JavaScript call apply使用 JavaScript对象的方法绑定到DOM事件后this指向问题_javascript技巧
-
关于javascript冒泡与默认事件的使用详解
-
C#事件(event)使用方法详解