javascript中attachEvent用法实例分析


Posted in Javascript onMay 14, 2015

本文实例讲述了javascript中attachEvent用法。分享给大家供大家参考。具体分析如下:

一般我们在JS中添加事件,是这样子的

obj.onclick=method

这种绑定事件的方式,兼容主流浏览器,但如果一个元素上添加多次同一事件呢?

obj.onclick=method1
obj.onclick=method2
obj.onclick=method3

如果这样写,那么只有最后绑定的事件,这里是method3会被执行,这个时候我们就不能用onclick这样的写法了,主角改登场了,在IE中我们可以使用attachEvent方法

btn1Obj.attachEvent("onclick",method1);
btn1Obj.attachEvent("onclick",method2);
btn1Obj.attachEvent("onclick",method3);

使用格式是前面是事件类型,注意的是需要加on,比如onclick,onsubmit,onchange,执行顺序是

method3->method2->method1

可惜这个微软的私人方法,火狐和其他浏览器都不支持,幸运的是他们都支持W3C标准的addEventListener方法

btn1Obj.addEventListener("click",method1,false);
btn1Obj.addEventListener("click",method2,false);
btn1Obj.addEventListener("click",method3,false);

执行顺序为method1->method2->method3

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>attachEvent</title>
<script type="text/javascript">
//第一种方式(微软的私人方法)
function iniEvent() {
  var btn = document.getElementById("btn");
  btn.attachEvent("onclick", click1);
  btn.attachEvent("onclick", click2);
  btn.attachEvent("onclick", click3);
}
//第二种方式(火狐和其他浏览器)
function iniEvent2() {
  var btn = document.getElementById("btn");
  btn.addEventListener("click", click1, false);
  btn.addEventListener("click", click2, false);
  btn.addEventListener("click", click3, false);
}
function click1() {
  alert('click1');
}
function click2() {
  alert('click2');
}
function click3() {
  alert('click3');
}
</script>
</head>
<body onload="iniEvent()">
<input type="button" id="btn" value="attachEvent" />
</body>
</html>

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
地址栏上的一段语句,改变页面的风格。(教程)
Apr 02 Javascript
jquery multiSelect 多选下拉框
Jul 09 Javascript
js 实现css风格选择器(压缩后2KB)
Jan 12 Javascript
javascript+canvas制作九宫格小程序
Dec 28 Javascript
javascript实现倒计时并弹窗提示特效
Jun 05 Javascript
理解JavaScript中worker事件api
Dec 25 Javascript
jQuery EasyUI之DataGrid使用实例详解
Jan 04 Javascript
jQuery为某个div加入行样式
Jun 09 jQuery
浅谈函数调用的不同方式,以及this的指向
Sep 17 Javascript
微信小程序前端promise封装代码实例
Aug 24 Javascript
微信小程序tab切换可滑动切换导航栏跟随滚动实现代码
Sep 04 Javascript
JavaScript如何使用插值实现图像渐变
Jun 28 Javascript
javascript实现Table间隔色以及选择高亮(和动态切换数据)的方法
May 14 #Javascript
javascript清空table表格的方法
May 14 #Javascript
AngularJS的内置过滤器详解
May 14 #Javascript
javascript实现带下拉子菜单的导航菜单效果
May 14 #Javascript
javascript实现dom动态创建省市纵向列表菜单的方法
May 14 #Javascript
javascript基于DOM实现权限选择实例分析
May 14 #Javascript
javascript中DOM复选框选择用法实例
May 14 #Javascript
You might like
PHP中数据库单例模式的实现代码分享
2014/08/21 PHP
laravel5.1框架model类查询的实现方法
2019/10/08 PHP
php文件上传原理与实现方法详解
2019/12/20 PHP
ExtJS 2.0实用简明教程 之Ext类库简介
2009/04/29 Javascript
点击下载链接 弹出页面实现代码
2009/10/01 Javascript
js简易namespace管理器 实例代码
2013/06/21 Javascript
2则自己编写的jQuery特效分享
2015/02/26 Javascript
js中setTimeout()与clearTimeout()用法实例浅析
2015/05/12 Javascript
深入剖析JavaScript中的函数currying柯里化
2016/04/29 Javascript
WebApi+Bootstrap+KnockoutJs打造单页面程序
2016/05/16 Javascript
灵活使用数组制作图片切换js实现
2016/07/28 Javascript
JavaScript浏览器对象模型BOM(BrowserObjectModel)实例详解
2016/11/29 Javascript
JavaScript 限制文本框不可输入英文单双引号的方法
2016/12/20 Javascript
VUE中使用MUI方法
2019/02/12 Javascript
vue自定义指令之面板拖拽的实现
2019/04/14 Javascript
javascript实现5秒倒计时并跳转功能
2019/06/20 Javascript
基于Vue sessionStorage实现保留搜索框搜索内容
2020/06/01 Javascript
js实现验证码干扰(动态)
2021/02/23 Javascript
[01:06:12]VP vs NIP 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
Python 安装第三方库 pip install 安装慢安装不上的解决办法
2019/06/18 Python
Python Web框架之Django框架Form组件用法详解
2019/08/16 Python
Flask之pipenv虚拟环境的实现
2019/11/26 Python
Python为何不支持switch语句原理详解
2020/10/21 Python
HTML5实现QQ聊天气泡效果
2017/06/26 HTML / CSS
Linux常见面试题
2013/03/18 面试题
捷科时代的软件测试笔试题
2015/11/09 面试题
Java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类?
2012/05/30 面试题
机电专业毕业生推荐信
2013/11/10 职场文书
三年级数学教学反思
2014/01/31 职场文书
自主招生自荐信指南
2014/02/04 职场文书
清明节演讲稿
2014/05/27 职场文书
社区志愿者服务心得体会
2016/01/22 职场文书
工作简历的自我评价
2019/05/16 职场文书
《狼王梦》读后感:可怜天下父母心
2019/11/01 职场文书
Vue鼠标滚轮滚动切换路由效果的实现方法
2021/08/04 Vue.js
服务器间如何实现文件共享
2022/05/20 Servers