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 相关文章推荐
一个基于jquery的文本框记数器
Sep 19 Javascript
jQuery插件实现屏蔽单个元素使用户无法点击
Apr 12 Javascript
JS 两日期相减,获得天数的小例子(兼容IE,FF)
Jul 01 Javascript
jquery与js函数冲突的两种解决方法
Sep 09 Javascript
js post提交调用方法
Feb 12 Javascript
PHP+jQuery实现随意拖动层并即时保存拖动位置
Apr 30 Javascript
[原创]Javascript 实现广告后加载 可加载百度谷歌联盟广告
May 11 Javascript
Javascript闭包与函数柯里化浅析
Jun 22 Javascript
Bootstrap table简单使用总结
Feb 15 Javascript
Vuejs在v-for中,利用index来对第一项添加class的方法
Mar 03 Javascript
关于vue的npm run dev和npm run build的区别介绍
Jan 14 Javascript
angular中的post请求处理示例详解
Jun 30 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中在数据库中保存Checkbox数据(1)
2006/10/09 PHP
PHP高级OOP技术演示
2009/08/27 PHP
js 数值项目的格式化函数代码
2010/05/14 Javascript
JavaScript高级程序设计(第3版)学习笔记9 js函数(下)
2012/10/11 Javascript
jQuery+css3动画属性制作猎豹浏览器宽屏banner焦点图
2015/03/16 Javascript
分享9个最好用的JavaScript开发工具和代码编辑器
2015/03/24 Javascript
JS组件中bootstrap multiselect两大组件较量
2016/01/26 Javascript
基于canvas实现的绚丽圆圈效果完整实例
2016/01/26 Javascript
jQuery实现字符串全部替换的方法
2016/12/12 Javascript
js中数组插入、删除元素操作的方法
2017/02/15 Javascript
JavaScript下拉菜单功能实例代码
2017/03/01 Javascript
详解VueRouter进阶之导航钩子和路由元信息
2017/09/13 Javascript
layer弹出的iframe层在执行完毕后关闭当前弹出层的方法
2018/08/17 Javascript
微信小程序服务器日期格式化问题
2020/01/07 Javascript
[05:15]DOTA2英雄梦之声_第16期_灰烬之灵
2014/06/21 DOTA
[01:11:46]DOTA2-DPC中国联赛 正赛 iG vs Magma BO3 第一场 2月23日
2021/03/11 DOTA
Python手机号码归属地查询代码
2016/05/04 Python
详解使用pymysql在python中对mysql的增删改查操作(综合)
2017/01/18 Python
python中列表和元组的区别
2017/12/18 Python
Python使用pickle模块储存对象操作示例
2018/08/15 Python
selenium+python自动化测试环境搭建步骤
2019/06/03 Python
三步实现Django Paginator分页的方法
2019/06/11 Python
python傅里叶变换FFT绘制频谱图
2019/07/19 Python
pygame实现俄罗斯方块游戏(基础篇3)
2019/10/29 Python
python+selenium定时爬取丁香园的新型冠状病毒数据并制作出类似的地图(部署到云服务器)
2020/02/09 Python
在jupyter notebook 添加 conda 环境的操作详解
2020/04/10 Python
浅谈opencv自动光学检测、目标分割和检测(连通区域和findContours)
2020/06/04 Python
Python调用SMTP服务自动发送Email的实现步骤
2021/02/07 Python
铭立家具面试题
2012/12/06 面试题
办公室岗位职责
2014/02/12 职场文书
周年庆促销方案
2014/03/15 职场文书
《火烧云》教学反思
2014/04/12 职场文书
关于感恩的演讲稿500字
2014/08/26 职场文书
开平碉楼导游词
2015/02/06 职场文书
初中英语教学反思范文
2016/02/15 职场文书
PyTorch device与cuda.device用法
2022/04/03 Python