用JavaScript事件串连执行多个处理过程的方法_Javascript教程-查字典教程网
用JavaScript事件串连执行多个处理过程的方法
用JavaScript事件串连执行多个处理过程的方法
发布时间:2016-12-30 来源:查字典编辑
摘要:最近用到JavaScript事件处理机制,找了些资料。以前写JavaScript程序时,事件都是采用复制代码代码如下:object.even...

最近用到JavaScript事件处理机制,找了些资料。

以前写JavaScript程序时,事件都是采用

复制代码 代码如下:

object.event=handler;

的方式初始化。这种方式对于InternetExplorer、Mozilla/Firefox和Opera来说很通用。但是有一个问题就是,这种方式只能一个事件对应一个事件处理过程。如果希望一个事件可以依次执行多个处理过程就不好用了。

但是InternetExplorer从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对象,其他的一些对象也支持该方法。

复制代码 代码如下:

functionaddEvent(obj,evenTypeName,fn){

if(obj.addEventListener){

obj.addEventListener(evenTypeName,fn,true);

returntrue;

}elseif(obj.attachEvent){

returnobj.attachEvent("on"+evenTypeName,fn);

}else{

returnfalse;

}

}

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