【前言】
本文简单介绍下attachEvent兼容各浏览器事件(DOM2级事件的兼容处理)
【主体】
直接上代码:
<button id="btn">按钮</button> <script type="text/javascript"> window.onload = function(){ // DOM2事件兼容 function addEvent(obj,ev,fn){ //obj为要绑定事件的元素,ev为要绑定的事件,fn为绑定事件的函数 if(document.addEventListener){ obj.addEventListener(ev, fn, false); }else{ obj.attachEvent("on" + ev, fn); } } var btn = document.getElementById("btn"); addEvent(btn,"click",show1); addEvent(btn,"click",show2); function show1(){alert(1)} function show2(){alert(2)} } </script>
.
相关推荐
2)事件的兼容性: 在低版本的IE和火狐上,事件传递机制不一样,需要通过window.event来获取事件 window.event||e 二、事件绑定和取消 1. 事件绑定 添加事件的做法,若出现为同一个节点绑定了同名的事件,会出现覆盖...
下面我实现的方法,兼容常见浏览器。 function getData(event){ var e = event || window.event; //获取滚动距离(FF每次滚动 data为3或者-3,其他为120或者-120) var data = e.detail || e.wheelDelta; alert(...
但是浏览器有addEventListener和attachEvent方法可供调用,从而模拟出类似于C#中的事件委托的事件触发机制! 代码如下: /* * 功能:事件处理 * Author:LQB * 时间:2009-1-4 * #include JCore.js */ var JEvents = ...
IE11没有window.attachEvent方法处理方法,文档中有详细说明
// 对于支持dom2级事件处理程序 addEventListener方法的浏览器 if (dom.addEventListener) { dom.addEventListener(type, fn, false); } // 对于支持 attachEvent 方法的浏览器 else if (dom.attachEvent) { ...
JS添加/删除事件在IE和支持dom浏览器分别为:attachEvent(ie中的添加事件),detachEvent(ie中的删除事件),addEventListener(支持dom浏览器中的添加事件),removeEventListener(支持dom浏览器中的删除事件)...
attachEvent方法 只支持IE678,不兼容其他浏览器 addEventListener方法 兼容火狐谷歌,不兼容IE8及以下 addEventListener方法 div.addEventListener('click',fn); div.addEventListener('click',fn2); function fn...
attachEvent Retrofill 释放旧记忆并安装attachEvent改造! 随着 IE 的消失和 Edge 的出现,微软将删除所有并完全坚持 Web 标准。 这使得所有addEvent包装器功能完全过时。 不要让这种情况发生并立即安装attachEvent...
2.关于获取行外样式 currentStyle 和 getComputedStyle 出现的兼容性问题;、 3.关于DOM中 childNodes 获取子节点出现的兼容性问题; 4.关于使用 firstChild,lastChild 等,获取第一个/最后一个元素节点时的兼容;...
因为对于支持DOM的浏览器来说,添加事件是用addEventListener()方法来给对象添加事件! 而对于MSIE来说则是用attachEvent()来给对象添加事件!这就使得我们必须用一个容器来装载这两个不同浏览器上对事件的处理方式...
由于不同浏览器处理事件各不相相同,这给开发者带来了不必要的麻烦,jQuery的方便的解决了这个方面的麻烦。 1.绑定事件监听 (//www.jb51.net/article/60096.htm)对事件的监听做了详细的介绍,看到了iE和DOM标准...
执行顺序是没有规律的,但是每次执行的顺序是一样的,如果是随机那么应该每次执行的顺序都不一样才对,这才是我想要说明的
这种绑定事件的方式,兼容主流浏览器,但如果一个元素上添加多次同一事件呢? obj.onclick=method1 obj.onclick=method2 obj.onclick=method3 如果这样写,那么只有最后绑定的事件,这里是method3会被执行,这个时候我们...
冒泡型事件模型: button->div->body (IE事件流) 捕获型事件模型: body->div->button (Netscape事件流) DOM事件模型: body->div->button->button->div->body (先捕获后冒泡) 2.事件侦听函数的区别 IE使用: ...
将 DOM 0级事件处理程序和DOM2级事件处理程序 IE事件处理程序封装为eventUtil对象,达到跨浏览器的效果。代码如下: var eventUtil = { // 添加事件句柄 addEventHandler:function (element,type,handler) { if ...
* @description 事件绑定,兼容各浏览器 * @param target * 事件触发对象 * @param type * 事件 * @param func * 事件处理函数 */ function bind(target, type, func) { if (target.addEventListener) {// 非ie 和ie...
self.attachevent is not a function其实就是以前的代码, 没有做chrome、firefox浏览器兼容导致。 self.attachEvent("onblur",function(){dd.style.display="none"}) 上面的代码在chrome浏览器肯定会报错的。 因为...
关于用脚本设置onload事件句柄 ... [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]关于用脚本绑定事件句柄 IE 下用 attachEvent, FF 下用 addEventListener相关讨论如下:http://search.blueidea.com/?q=addE
//DOM2级事件处理,IE9也支持 if(element.addEventListener){ element.addEventListener(type,handler,false); } else if(element.attachEvent){ //type加'on' //IE9也可以这样绑定 element.attachEvent('on...
因为javascript中所有对象都集成与Object,那么只有给Object原型添加一个事件绑定函数,就不需要在处理绑定事件的时候,每次写一长串代码,直接调用即可。在代码中添加红色部分代码,直接便可以在代码中直接调用 ...