addEventListener:为单个事件注册多个事件事件处理程序
在通常情况下,如果要为单个事件注册多个事件处理程序,那么只有最后注册的那个事件处理程序才会起作用。这是因为在DOM中,为HTML元素的一个事件指定事件处理程序时,这个事件处理程序会成为该元素的一个属性,如果为一个属性赋值,这个属性就会有这个值,可是如果再继续为这个属性赋值呢?很简单,这个属性就会有新值,原来的值就被覆盖了。所以,只有最后注册的那个事件处理程序才会起作用。为了解决这个问题,我们可以使用DOM Level 2模型的addEventListener()方法。
addEventListener("事件名(不用加on)",事件处理程序,Bool(指示是完成事件浮升(false)还是事件捕获(true),通常情况下使用false))。这个事件是DOM Level 2模型的新方法,所以支持该模型的浏览器都可以使用这个方法,但是,在ie浏览器中,并不支持addEventListener方法,不过不用担心,我们可以使用attachEvent("事件名(加on)",事件处理程序),作用是一样的。
使用了事件监听之后,我们并不能确定事件处理程序的调用顺序与其增加顺序一致,因为事件监听者并不会以某种特定的顺序调用事件处理程序,我们要确保事件处理程序不依赖于所调用的顺序。
下面提供一个兼容各种浏览器的函数,用于创建事件监听对象:
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:为单个事件注册多个事件事件处理程序相关推荐
- jQuery学习笔记系列(三)——事件注册、事件处理、事件对象、拷贝对象、多库共存、jQuery插件、toDoList综合案例
day03 - jQuery 学习目标: 能够说出4种常见的注册事件 能够说出 on 绑定事件的优势 能够说出 jQuery 事件委派的优点以及方式 能够说出绑定事件与解绑事件 能够说出 jQuery ...
- Knative Eventing 中如何实现 Registry 事件注册机制
背景 作为事件消费者,之前是无法事先知道哪些事件可以被消费,如果能通过某种方式获得哪些 Broker 提供哪些事件,那么事件消费者就能很方便通过这些 Broker 消费事件.Registry 就是在这 ...
- C#控件的创建、属性设置及事件注册
摘要:本文基于Visual studio 2019, 以按钮控件(Button)为例,认识控件的创建方式.属性设置及事件注册. 编程语言:C# 编程环境:Visual Studio 2019 目录 控 ...
- jQuery事件注册、jQuery事件对象、事件处理
jQuery事件注册 1.单个注册事件 element.事件(function(){函数执行程序}) 例如:鼠标点击div变化背景颜色 $("div").click(functio ...
- JS标签的获取、js curd、事件的四要素、事件的三种注册方式和区别
1.掌握html和body标签的两种特殊获取方式(*****)---(重点) html: document.documentElement body: document.body le ...
- 事件注册方法、阻止默认事件、事件对象、事件冒泡:事件委托、事件捕获、重置表单
dom两种注册事件语法 1.点语法注册事件: 事件源.事件类型 = 事件处理函数 特点:不能注册'同名事件', 否则会覆盖 2.addEventListener 事件源.addEventListene ...
- 由object元素引出的事件注册问题和层级显示问题
项目有一个双击监控视频全屏的需求,视频播放使用的是IE下的ActiveX控件,web页面中使用HTML嵌入对象元素object.预期方案如下: 1.在开发ActiveX控件时加入双击事件. 2.通过d ...
- 一步步学习微软InfoPath2010和SP2010--第九章节--使用SharePoint用户配置文件Web service(2)--在事件注册表单上创建表单加载规则...
下面练习中,你将添加表单加载规则,将四个文本框域和图片控件与用户配置文件web service连接.当使用用户配置文件web service时,你需要将控件和来自web service合适的域绑定.这 ...
- jQuery基础教程之如何注册以及触发自定义事件
在不知道jquery中可以注册自定义事件之前,经常看到很多牛人写的插件中,有用到: bind("originevent",function(){-}); 由于当时不知道jquery ...
- 事件介绍、两种事件注册的介绍、onload事件、onclick事件、onblur事件、onchange事件、onsubmit事件
事件介绍 事件就是电脑输入设备与页面进行交互的响应,被称之为事件 常用的事件: onload 加载完成事件:页面加载完成之后,常用于做页面js代码初始化操作 onclick ...
最新文章
- ubuntu中mysql操作_uBuntu下安装MySql,及mySql操作!
- Android中解析XML---数据存储
- 操作系统实验以及课程设计
- 移动端适配(必须要知道的,亲测有效)
- 搭建 Sql Server 2008 R2 Failover Cluster
- 干净下潜声阔的贝斯混音教程|我要为贝斯手讨个公道!让粉丝们都能听清楚贝斯声|MZD Studios
- Oracle ORA-01033: 错误解决办法
- zemax中非序列添加相位面_zemax非序列照明技巧汇编
- Jenkins平台搭建
- Chrome繁简体转换插件
- Linux常见系统故障排除
- C++学习 std::tr1::shared_ptr使用的一点体会tr1库介绍
- SpringBoot+Vue项目实现高校学生健康打卡系统
- react二级路由的两种方法
- 我的世界回连Center
- BIgDecimal的用法,及与各类数据类型的转换
- freemark导出word,图片显示问题
- JAVA mapper.map()_Java MapperFacade.map方法代码示例
- 有什么毫不起眼却闷声发大财的行业或者生意?
- 优恩对比分析GDT陶瓷气体放电管与TSS放电管
热门文章
- Vs2010工具栏显示“开始执行“按钮
- 正则表达式匹配EXCEL地址字符串
- 挑战性题目DSCT302:求不同形态的平衡二叉树数目
- BZOJ1646[Usaco2007 Open] 抓住那头牛
- 后台管理项目系列-(一)--基本的项目搭建
- Express框架学习笔记-express路由参数
- Java中Collection接口
- mybatis 调用 oracle函数_从Oracle到PG 该做的改造工作一个都不能少!
- 线元法输入曲线要素_Origin入门教程(三):Origin中曲线怎么平移?
- leetcode c++未初始化_LeetCode每日一题:填充每个节点的下一个右侧节点指针