用JavaScript事件串连执行多个处理过程的方法
2018-10-12 14:00
627 查看
最近用到JavaScript 事件处理机制,找了些资料。
以前写 JavaScript 程序时,事件都是采用
的方式初始化。这种方式对于 Internet Explorer、Mozilla/Firefox 和 Opera 来说很通用。但是有一个问题就是,这种方式只能一个事件对应一个事件处理过程。如果希望一个事件可以依次执行多个处理过程就不好用了。
但是 Internet Explorer 从 5.0 开始提供了一个 attachEvent 方法,使用这个方法,就可以给一个事件指派多个处理过程了。attachEvent 对于目前的 Opera 也适用。但是问题是 Mozilla/Firefox 并不支持这个方法。但是它支持另一个 addEventListener 方法,这个方法跟 attachEvent 差不多,也是用来给一个事件指派多个处理过程的。但是它们指派的事件有些区别,在 attachEvent 方法中,事件是以 “on” 开头的,而在 addEventListener 中,事件没有开头的 “on”,另外 addEventListener 还有第三个参数,一般这个参数指定为 false 就可以了。
因此要想在你的程序中给一个事件指派多个处理过程的话,只要首先判断一下浏览器,然后根据不同的浏览器,选择使用 attachEvent 还是 addEventListener 就可以了。实例如下:
以前写 JavaScript 程序时,事件都是采用
object.event = handler;
的方式初始化。这种方式对于 Internet Explorer、Mozilla/Firefox 和 Opera 来说很通用。但是有一个问题就是,这种方式只能一个事件对应一个事件处理过程。如果希望一个事件可以依次执行多个处理过程就不好用了。
但是 Internet Explorer 从 5.0 开始提供了一个 attachEvent 方法,使用这个方法,就可以给一个事件指派多个处理过程了。attachEvent 对于目前的 Opera 也适用。但是问题是 Mozilla/Firefox 并不支持这个方法。但是它支持另一个 addEventListener 方法,这个方法跟 attachEvent 差不多,也是用来给一个事件指派多个处理过程的。但是它们指派的事件有些区别,在 attachEvent 方法中,事件是以 “on” 开头的,而在 addEventListener 中,事件没有开头的 “on”,另外 addEventListener 还有第三个参数,一般这个参数指定为 false 就可以了。
因此要想在你的程序中给一个事件指派多个处理过程的话,只要首先判断一下浏览器,然后根据不同的浏览器,选择使用 attachEvent 还是 addEventListener 就可以了。实例如下:
注意:attachEvent 所指派的多个过程的执行顺序是随机的,所以这几个过程之间不要有顺序依赖。另外 attachEvent 和 addEventListener 不仅仅适用于 window 对象,其他的一些对象也支持该方法。
if (document.all) {
window.attachEvent('onload', handler1);
window.attachEvent('onload', handler2);
}
else {
window.addEventListener('load', handler1, false);
window.addEventListener('load', handler2, false);
}
function addEvent(obj, evenTypeName, fn){
if (obj.addEventListener){
obj.addEventListener(evenTypeName, fn, true);
return true;
} else if (obj.attachEvent){
return obj.attachEvent("on"+evenTypeName, fn);
} else {
return false;
}
}
您可能感兴趣的文章:
相关文章推荐
- 用JavaScript事件串连执行多个处理过程的方法
- JavaScript执行多个处理过程的方法
- JavaScript执行window.onload和body onload多个处理过程的方法
- JavaScript执行多个处理过程的方法
- 十种JavaScript事件处理的使用方法
- 补:Javascript事件处理的串连
- javascript 事件处理、鼠标拖动效果实现方法详解
- javascript 附件事件时带参数的处理方法
- javascript处理a标签超链接默认事件的方法
- javascript 事件处理、鼠标拖动效果实现方法详解
- Ext javascript建立超链接,进行事件处理的实现方法
- JavaScript Event 事件处理机制之自定义事件处理方法
- 修改操作系统时间mysql event事件不执行的处理方法
- 事件之onTouch方法的执行过程 及和 onClick执行发生冲突的解决办法
- JavaScript中停止执行setInterval和setTimeout事件的方法
- JavaScript中停止执行setInterval和setTimeout事件的方法
- JavaScript的错误处理之onerror事件的使用方法
- 同一事件绑定不同的处理方法、执行顺序有所不同
- JavaScript实现为指定对象添加多个事件处理程序的方法
- javascript父级鼠标移入移出事件中的子集影响父级的处理方法