JavaScript DOM 添加事件


Posted in Javascript onFebruary 14, 2009

因为对于支持DOM的浏览器来说,添加事件是用addEventListener()方法来给对象添加事件!
而对于MSIE来说则是用attachEvent()来给对象添加事件!这就使得我们必须用一个容器来装载这两个不同浏览器上对事件的处理方式!这样我们就可以直接调用addEvent()方法来给对象添加事件了!
这不是更方便?!呵呵……
让我们来看看吧!
/**
* 注册一个监听事件到元素
* @param {Object} node 所要添加事件的对象
* @param {Object} type 事件类型
* @param {Object} listener 事件方法
*/
function addEvent( node, type, listener ) {
//使用前面的方法检查兼容性以保证平稳退化
if(!(node = $(node))) return false;

if(node.attachEvent) { // 这是针对IE 的方法
node['e'+type+listener] = listener;
node[type+listener] = function(){node['e'+type+listener]( window.event );}
node.attachEvent( 'on'+type, node[type+listener] );
return true;
}else if (node.addEventListener) {
// 这是针对支持DOM的浏览器的方法
node.addEventListener( type, listener, false );
return true;
}
// 若两种方法都不具备则返回false;
return false;
};
window['liujingning']['addEvent'] = addEvent;

使用方法:
比如我们要给页面的onload()上添加事件,我们就可以这样写:
liujingning.addEvent(window,'load',function(Event) { //这里写你要写的代码}
我们也可以给某个ID添加事件
var getId = document.getElementById('aa');
liujingning.addEvent(getId,'load',function(Event) { //这里写你要写的代码}

Javascript 相关文章推荐
些很实用且必用的小脚本代码
Jun 26 Javascript
jquery 简短右键菜单 多浏览器兼容
Jan 01 Javascript
javascript面向对象编程代码
Dec 19 Javascript
javascript常见操作汇总
Sep 03 Javascript
AngularJS iframe跨域打开内容时报错误的解决办法
Jan 26 Javascript
详解JavaScript的AngularJS框架中的表达式与指令
Mar 05 Javascript
如何使用AngularJs打造权限管理系统【简易型】
May 09 Javascript
jQuery窗口拖动功能的实现代码
Feb 04 Javascript
JavaScript脚本语言是什么_动力节点Java学院整理
Jun 26 Javascript
node通过express搭建自己的服务器
Sep 30 Javascript
js异步上传多张图片插件的使用方法
Oct 22 Javascript
解决vue项目中页面调用数据 在数据加载完毕之前出现undefined问题
Nov 14 Javascript
CSS+Table图文混排中实现文本自适应图片宽度(超简单+跨所有浏览器)
Feb 14 #Javascript
JavaScript实现动态增加文件域表单
Feb 12 #Javascript
从JavaScript 到 JQuery (1)学习小结
Feb 12 #Javascript
谷歌浏览器 insertCell与appendChild的区别
Feb 12 #Javascript
js 判断 enter 事件
Feb 12 #Javascript
JavaScript 克隆数组最简单的方法
Feb 12 #Javascript
js函数使用技巧之 setTimeout(function(){},0)
Feb 09 #Javascript
You might like
php访问查询mysql数据的三种方法
2006/10/09 PHP
PHP处理大量表单字段的便捷方法
2015/02/07 PHP
php获取字符串中各个字符出现次数的方法
2015/02/23 PHP
PHP中JSON的应用技巧
2015/10/10 PHP
PHP编写文件多服务器同步程序
2016/07/02 PHP
PHP7.3.10编译安装教程
2019/10/08 PHP
jquery中动态效果小结
2010/12/16 Javascript
基于JQUERY的两个ListBox子项互相调整的实现代码
2011/05/07 Javascript
JQuery中如何传递参数如click(),change()等具体实现
2013/04/28 Javascript
JavaScript地图拖动功能SpryMap的简单实现
2013/07/17 Javascript
jquery鼠标停止移动事件
2013/12/21 Javascript
使用jquery写个更改表格行顺序的小功能
2014/04/29 Javascript
jQuery事件用法实例汇总
2014/08/29 Javascript
jquery插件autocomplete用法示例
2016/07/01 Javascript
JavaScript利用闭包实现模块化
2017/01/13 Javascript
vue项目中实现图片预览的公用组件功能
2018/10/26 Javascript
详解JavaScript作用域和作用域链
2019/03/19 Javascript
微信小程序如何实现精确的日期时间选择器
2020/01/21 Javascript
[47:03]完美世界DOTA2联赛PWL S3 Galaxy Racer vs Phoenix 第二场 12.10
2020/12/13 DOTA
Python黑帽编程 3.4 跨越VLAN详解
2016/09/28 Python
回调函数的意义以及python实现实例
2017/06/20 Python
mac下给python3安装requests库和scrapy库的实例
2018/06/13 Python
python地震数据可视化详解
2019/06/18 Python
python实现切割url得到域名、协议、主机名等各个字段的例子
2019/07/25 Python
python 实现矩阵填充0的例子
2019/11/29 Python
python实现暗通道去雾算法的示例
2020/09/27 Python
北美主要的汽车零部件零售商:AutoShack.com
2019/02/23 全球购物
介绍一下linux的文件系统
2012/03/20 面试题
物流专业大学生的自我鉴定
2013/11/13 职场文书
会计毕业生自荐信
2013/11/21 职场文书
师范毕业生自我鉴定
2014/01/15 职场文书
大专生毕业的自我评价
2014/02/06 职场文书
交通事故协议书范文
2014/10/23 职场文书
2015年教研室工作总结范文
2015/05/23 职场文书
幽默导游词开场白
2015/05/29 职场文书
Nginx反向代理多个服务器的实现方法
2021/03/31 Servers