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 相关文章推荐
FLASH 广告之外的链接
Dec 16 Javascript
jquery 单击li防止重复加载的实现代码
Dec 24 Javascript
js的写法基础分析
Jan 17 Javascript
jquery中get,post和ajax方法的使用小结
Feb 04 Javascript
js 模式窗口(模式对话框和非模式对话框)的使用介绍
Jul 17 Javascript
JavaScript更改字符串的大小写
May 07 Javascript
Jsonp 关键字详解及json和jsonp的区别,ajax和jsonp的区别
Dec 30 Javascript
详解AngularJS中ng-src指令的使用
Sep 07 Javascript
浅谈vue.js中v-for循环渲染
Jul 26 Javascript
Javascript实现购物车功能的详细代码
May 08 Javascript
vue 使用自定义指令实现表单校验的方法
Aug 28 Javascript
手写Spirit防抖函数underscore和节流函数lodash
Mar 22 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
咖啡常见的种类
2021/03/03 新手入门
PHP下利用shell后台运行PHP脚本,并获取该脚本的Process ID的代码
2011/09/19 PHP
Yii不依赖Model的表单生成器用法实例
2014/12/04 PHP
基于php双引号中访问数组元素报错的解决方法
2018/02/01 PHP
基于PHP+mysql实现新闻发布系统的开发
2020/08/06 PHP
jquery 弹出登录窗口实现代码
2009/12/24 Javascript
jquery、js调用iframe父窗口与子窗口元素的方法整理
2014/07/31 Javascript
javascript实现的全国省市县无刷新多级关联菜单效果代码
2016/08/01 Javascript
js生成随机数方法和实例
2017/01/17 Javascript
JavaScript的for循环中嵌套一个点击事件的问题解决
2017/03/03 Javascript
JavaScript实现设置默认日期范围为最近40天的方法分析
2017/07/12 Javascript
详解Vue路由History mode模式中页面无法渲染的原因及解决
2017/09/28 Javascript
vue中手机号,邮箱正则验证以及60s发送验证码的实例
2018/03/16 Javascript
angularjs使用div模拟textarea文本框的方法
2018/10/02 Javascript
SpringBoot+Vue 前后端合并部署的配置方法
2020/12/30 Vue.js
Python开发实例分享bt种子爬虫程序和种子解析
2014/05/21 Python
python实现分析apache和nginx日志文件并输出访客ip列表的方法
2015/04/04 Python
Python多线程编程(一):threading模块综述
2015/04/05 Python
Python3操作SQL Server数据库(实例讲解)
2017/10/21 Python
解析Python中的eval()、exec()及其相关函数
2017/12/20 Python
Python中单例模式总结
2018/02/20 Python
详解Numpy数组转置的三种方法T、transpose、swapaxes
2019/05/27 Python
简单了解python反射机制的一些知识
2019/07/13 Python
Django ModelForm组件使用方法详解
2019/07/23 Python
Python +Selenium解决图片验证码登录或注册问题(推荐)
2020/02/09 Python
Python类中的装饰器在当前类中的声明与调用详解
2020/04/15 Python
使用Numpy对特征中的异常值进行替换及条件替换方式
2020/06/08 Python
OpenCV图片漫画效果的实现示例
2020/08/18 Python
Charlotte Tilbury美国官网:英国美妆品牌
2017/10/13 全球购物
Lululemon加拿大官网:加拿大知名体育服装零售商
2019/04/12 全球购物
企业授权委托书范本
2014/04/02 职场文书
环保建议书200字
2014/05/14 职场文书
总经理检讨书范文
2015/02/16 职场文书
2016年优秀党员教师先进事迹材料
2016/02/29 职场文书
写给消防战士们的一封慰问信
2019/10/07 职场文书
java executor包参数处理功能 
2022/02/15 Java/Android