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

 更新时间:2007年03月09日 00:00:00   作者:  
最近用到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; 
 } 

相关文章

  • uniapp禁止遮罩层下页面滚动的解决方法

    uniapp禁止遮罩层下页面滚动的解决方法

    在uniapp的开发中用过弹窗的都知道有个bug就是滑动弹窗的内容底部页面也会跟着滑动,所以这篇文章主要给大家介绍了关于uniapp禁止遮罩层下页面滚动的解决方法,需要的朋友可以参考下
    2023-09-09
  • 利用JavaScript实现拖拽改变元素大小

    利用JavaScript实现拖拽改变元素大小

    本文主要介绍了JavaScript实现拖拽改变元素大小的原理及具体实例分析,具有很好的参考价值,需要的朋友一起来看下吧
    2016-12-12
  • 针对JavaScript中this指向的简单理解

    针对JavaScript中this指向的简单理解

    这篇文章主要为大家详细JavaScript中this指向的简单理解,感兴趣的小伙伴们可以参考一下
    2016-08-08
  • JS利用 React.lazy 优化页面初次渲染

    JS利用 React.lazy 优化页面初次渲染

    这篇文章主要介绍了JS利用 React.lazy 优化页面初次渲染,React.lazy 接受一个函数,这个函数需要动态调用import(),它必须返回一个Promise,该Promise需要resolve一个default export的React组件
    2022-07-07
  • JavaScript实现颜色查看器

    JavaScript实现颜色查看器

    这篇文章主要为大家详细介绍了JavaScript实现颜色查看器,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-04-04
  • JS传参及动态修改页面布局

    JS传参及动态修改页面布局

    本篇文章主要介绍了JS传参及动态修改页面布局的相关知识。具有很好的参考价值。下面跟着小编一起来看下吧
    2017-04-04
  • two.js之实现动画效果示例

    two.js之实现动画效果示例

    本篇文章主要介绍了two.js之实现动画效果示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-11-11
  • Javascript仿新浪游戏频道鼠标悬停显示子菜单效果

    Javascript仿新浪游戏频道鼠标悬停显示子菜单效果

    这篇文章主要介绍了Javascript仿新浪游戏频道鼠标悬停显示子菜单效果,涉及鼠标事件及页面元素结点的遍历技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-08-08
  • 纯js封装的ajax功能函数与用法示例

    纯js封装的ajax功能函数与用法示例

    这篇文章主要介绍了纯js封装的ajax功能函数与用法,结合实例形式分析了基于JavaScript封装的ajax功能函数定义及与php后台交互相关操作技巧,需要的朋友可以参考下
    2018-05-05
  • 微信小程序云开发(数据库)详解

    微信小程序云开发(数据库)详解

    使用云开发开发微信小程序、小游戏,无需搭建服务器,这篇文章主要为大家详细介绍了微信小程序云开发数据库,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-05-05

最新评论