因为对于支持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 全面解析各种浏览器网页中的JS 执行顺序
我们知道javaScript是一种解释型语言,他的执行是自上而下,但是各个浏览器对于至上而下的理解是有细微差别的,而代码的上下游也就是程序流又对于程序正确至关重要,所以我觉得有必要深入理解多个js块儿的执行顺序>>>详细阅读
本文标题:JavaScript DOM 添加事件
地址:http://www.17bianji.com/kaifa2/JS/28959.html
1/2 1