用JavaScript事件串连执行多个处理过程的方法

919283994辉

919283994辉

2016-02-19 10:32

只要你有一台电脑或者手机,都能关注图老师为大家精心推荐的用JavaScript事件串连执行多个处理过程的方法,手机电脑控们准备好了吗?一起看过来吧!
最近用到JavaScript 事件处理机制,找了些资料。
以前写 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 就可以了。实例如下:
代码如下:

if (document.all) { 
    window.attachEvent('onload', handler1); 
    window.attachEvent('onload', handler2); 

else { 
    window.addEventListener('load', handler1, false); 
    window.addEventListener('load', handler2, false); 

注意:attachEvent 所指派的多个过程的执行顺序是随机的,所以这几个过程之间不要有顺序依赖。另外 attachEvent 和 addEventListener 不仅仅适用于 window 对象,其他的一些对象也支持该方法。
代码如下:

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; 
 } 

展开更多 50%)
分享

猜你喜欢

用JavaScript事件串连执行多个处理过程的方法

Web开发
用JavaScript事件串连执行多个处理过程的方法

JavaScript事件驱动及事件处理

Web开发
JavaScript事件驱动及事件处理

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

JavaScript中的事件处理

Web开发
JavaScript中的事件处理

.NET事件处理的过程

电脑网络
.NET事件处理的过程

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

JavaScript框架hover事件处理

Web开发
JavaScript框架hover事件处理

jsp网站永久换域名的处理过程

Web开发
jsp网站永久换域名的处理过程

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

mysql 记录不存在时插入 记录存在则更新的实现方法

mysql 记录不存在时插入 记录存在则更新的实现方法

关于Struts2的类型转换详解

关于Struts2的类型转换详解
下拉加载更多内容 ↓