在通常情况下,如果要为单个事件注册多个事件处理程序,那么只有最后注册的那个事件处理程序才会起作用。这是因为在DOM中,为HTML元素的一个事件指定事件处理程序时,这个事件处理程序会成为该元素的一个属性,如果为一个属性赋值,这个属性就会有这个值,可是如果再继续为这个属性赋值呢?很简单,这个属性就会有新值,原来的值就被覆盖了。所以,只有最后注册的那个事件处理程序才会起作用。为了解决这个问题,我们可以使用DOM Level 2模型的addEventListener()方法。

  addEventListener("事件名(不用加on)",事件处理程序,Bool(指示是完成事件浮升(false)还是事件捕获(true),通常情况下使用false))。这个事件是DOM Level 2模型的新方法,所以支持该模型的浏览器都可以使用这个方法,但是,在ie浏览器中,并不支持addEventListener方法,不过不用担心,我们可以使用attachEvent("事件名(加on)",事件处理程序),作用是一样的。

  使用了事件监听之后,我们并不能确定事件处理程序的调用顺序与其增加顺序一致,因为事件监听者并不会以某种特定的顺序调用事件处理程序,我们要确保事件处理程序不依赖于所调用的顺序。

  下面提供一个兼容各种浏览器的函数,用于创建事件监听对象:

function addEventHandler(objectelement, eventname, eventhandler) {
if (document.attachEvent)//ie浏览器
{
objectelement.attachEvent("on" + eventname, eventhandler);
}
else if (document.addEventListener) //非ie浏览器
{
objectelement.addEventListener(eventname, eventhandler, false);
}
}

转载于:https://www.cnblogs.com/Pure-Land/archive/2011/07/08/2101185.html

addEventListener:为单个事件注册多个事件事件处理程序相关推荐

  1. jQuery学习笔记系列(三)——事件注册、事件处理、事件对象、拷贝对象、多库共存、jQuery插件、toDoList综合案例

    day03 - jQuery 学习目标: 能够说出4种常见的注册事件 能够说出 on 绑定事件的优势 能够说出 jQuery 事件委派的优点以及方式 能够说出绑定事件与解绑事件 能够说出 jQuery ...

  2. Knative Eventing 中如何实现 Registry 事件注册机制

    背景 作为事件消费者,之前是无法事先知道哪些事件可以被消费,如果能通过某种方式获得哪些 Broker 提供哪些事件,那么事件消费者就能很方便通过这些 Broker 消费事件.Registry 就是在这 ...

  3. C#控件的创建、属性设置及事件注册

    摘要:本文基于Visual studio 2019, 以按钮控件(Button)为例,认识控件的创建方式.属性设置及事件注册. 编程语言:C# 编程环境:Visual Studio 2019 目录 控 ...

  4. jQuery事件注册、jQuery事件对象、事件处理

    jQuery事件注册 1.单个注册事件 element.事件(function(){函数执行程序}) 例如:鼠标点击div变化背景颜色 $("div").click(functio ...

  5. JS标签的获取、js curd、事件的四要素、事件的三种注册方式和区别

    1.掌握html和body标签的两种特殊获取方式(*****)---(重点)         html: document.documentElement body: document.body le ...

  6. 事件注册方法、阻止默认事件、事件对象、事件冒泡:事件委托、事件捕获、重置表单

    dom两种注册事件语法 1.点语法注册事件: 事件源.事件类型 = 事件处理函数 特点:不能注册'同名事件', 否则会覆盖 2.addEventListener 事件源.addEventListene ...

  7. 由object元素引出的事件注册问题和层级显示问题

    项目有一个双击监控视频全屏的需求,视频播放使用的是IE下的ActiveX控件,web页面中使用HTML嵌入对象元素object.预期方案如下: 1.在开发ActiveX控件时加入双击事件. 2.通过d ...

  8. 一步步学习微软InfoPath2010和SP2010--第九章节--使用SharePoint用户配置文件Web service(2)--在事件注册表单上创建表单加载规则...

    下面练习中,你将添加表单加载规则,将四个文本框域和图片控件与用户配置文件web service连接.当使用用户配置文件web service时,你需要将控件和来自web service合适的域绑定.这 ...

  9. jQuery基础教程之如何注册以及触发自定义事件

    在不知道jquery中可以注册自定义事件之前,经常看到很多牛人写的插件中,有用到: bind("originevent",function(){-}); 由于当时不知道jquery ...

  10. 事件介绍、两种事件注册的介绍、onload事件、onclick事件、onblur事件、onchange事件、onsubmit事件

    事件介绍 事件就是电脑输入设备与页面进行交互的响应,被称之为事件 常用的事件: onload        加载完成事件:页面加载完成之后,常用于做页面js代码初始化操作 onclick        ...

最新文章

  1. ubuntu中mysql操作_uBuntu下安装MySql,及mySql操作!
  2. Android中解析XML---数据存储
  3. 操作系统实验以及课程设计
  4. 移动端适配(必须要知道的,亲测有效)
  5. 搭建 Sql Server 2008 R2 Failover Cluster
  6. 干净下潜声阔的贝斯混音教程|我要为贝斯手讨个公道!让粉丝们都能听清楚贝斯声|MZD Studios
  7. Oracle ORA-01033: 错误解决办法
  8. zemax中非序列添加相位面_zemax非序列照明技巧汇编
  9. Jenkins平台搭建
  10. Chrome繁简体转换插件
  11. Linux常见系统故障排除
  12. C++学习 std::tr1::shared_ptr使用的一点体会tr1库介绍
  13. SpringBoot+Vue项目实现高校学生健康打卡系统
  14. react二级路由的两种方法
  15. 我的世界回连Center
  16. BIgDecimal的用法,及与各类数据类型的转换
  17. freemark导出word,图片显示问题
  18. JAVA mapper.map()_Java MapperFacade.map方法代码示例
  19. 有什么毫不起眼却闷声发大财的行业或者生意?
  20. 优恩对比分析GDT陶瓷气体放电管与TSS放电管

热门文章

  1. Vs2010工具栏显示“开始执行“按钮
  2. 正则表达式匹配EXCEL地址字符串
  3. 挑战性题目DSCT302:求不同形态的平衡二叉树数目
  4. BZOJ1646[Usaco2007 Open] 抓住那头牛
  5. 后台管理项目系列-(一)--基本的项目搭建
  6. Express框架学习笔记-express路由参数
  7. Java中Collection接口
  8. mybatis 调用 oracle函数_从Oracle到PG 该做的改造工作一个都不能少!
  9. 线元法输入曲线要素_Origin入门教程(三):Origin中曲线怎么平移?
  10. leetcode c++未初始化_LeetCode每日一题:填充每个节点的下一个右侧节点指针