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 相关文章推荐
JavaScript DOM学习第六章 表单实例
Feb 19 Javascript
JavaScript 继承使用分析
May 12 Javascript
js解析与序列化json数据(二)序列化探讨
Feb 01 Javascript
使用impress.js制作幻灯片
Sep 09 Javascript
js命名空间写法示例
Dec 18 Javascript
javascript函数的节流[throttle]与防抖[debounce]
Nov 15 Javascript
最实用的JS数组函数整理
Dec 05 Javascript
vue路由导航守卫和请求拦截以及基于node的token认证的方法
Apr 07 Javascript
一文了解vue-router之hash模式和history模式
May 31 Javascript
微信浏览器下拉黑边解决方案 wScroollFix
Jan 21 Javascript
VueQuillEditor富文本上传图片(非base64)
Jun 03 Javascript
vue全局使用axios的操作
Sep 08 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
饭制《星际争霸》Mod:优化游戏机制 增加新单位
2017/07/02 星际争霸
php中随机显示图片的函数代码
2011/06/23 PHP
smarty内置函数capture用法分析
2015/01/22 PHP
PHP实现爬虫爬取图片代码实例
2021/03/03 PHP
js为数字添加逗号并格式化数字的代码
2013/08/23 Javascript
jquery隔行换色效果实现方法
2015/01/15 Javascript
jQuery使用load()方法载入另外一个网页文件内的指定标签内容到div标签的方法
2015/03/25 Javascript
javascript中setAttribute兼容性用法分析
2016/12/12 Javascript
简单实现js倒计时功能
2017/02/13 Javascript
node学习记录之搭建web服务器教程
2017/02/16 Javascript
jquery Easyui Datagrid实现批量操作(编辑,删除,添加)
2017/02/20 Javascript
Vue中&quot;This dependency was not found&quot;问题的解决方法
2018/06/19 Javascript
angularJs提交文本框数据到后台的方法
2018/10/08 Javascript
layui 表格操作列按钮动态显示的实现方法
2019/09/06 Javascript
解决vue-pdf查看pdf文件及打印乱码的问题
2020/11/04 Javascript
解决vue打包 npm run build-test突然不动了的问题
2020/11/13 Javascript
python求pi的方法
2014/10/08 Python
初步探究Python程序的执行原理
2015/04/11 Python
Python中的random()方法的使用介绍
2015/05/15 Python
Python cookbook(数据结构与算法)将序列分解为单独变量的方法
2018/02/13 Python
python对html过滤处理的方法
2018/10/21 Python
python算法与数据结构之单链表的实现代码
2019/06/27 Python
Python 堆叠柱状图绘制方法
2019/07/29 Python
Django实现跨域的2种方法
2019/07/31 Python
python连接PostgreSQL数据库的过程详解
2019/09/18 Python
Python + Flask 实现简单的验证码系统
2019/10/01 Python
python3实现在二叉树中找出和为某一值的所有路径(推荐)
2019/12/26 Python
适合Python初学者的一些编程技巧
2020/02/12 Python
Selenium基于PIL实现拼接滚动截图
2020/04/10 Python
Python logging模块异步线程写日志实现过程解析
2020/06/30 Python
HTML5和CSS3实例教程总结(推荐)
2016/07/18 HTML / CSS
英国日常交易网站:Wowcher
2018/09/04 全球购物
商务英语应届生自我鉴定
2013/12/08 职场文书
《难忘的泼水节》教学反思
2014/02/27 职场文书
公司业务员管理制度
2015/08/05 职场文书
机关干部正风肃纪心得体会
2016/01/15 职场文书