javascript处理事件的一些兼容写法
2012-11-15 17:36
609 查看
绑定事件
addEventListener:W3C标准写法IE不兼容attachEvent:兼容IE
注意:1:事件名不同:IE下要加“on“,W3C不加
2:加载事件的执行顺序不同,W3C按绑定事件的顺序来执行,而IE6,7是后绑定的时间先发生
3:this的指向,W3C中,绑定函数中的this指向DOM对象,而IE6,7指向WINDOWS对象
varaddEvent=function(obj,type,fn){ if(obj.addEventListener) obj.addEventListener(type,fn,false); elseif(obj.attachEvent){ obj["e"+type+fn]=fn; obj.attachEvent("on"+type,function(){ obj["e"+type+fn](); }); } };
另一个实现
varaddEvent=(function(){ if(document.addEventListener){ returnfunction(el,type,fn){ el.addEventListener(type,fn,false); }; }else{ returnfunction(el,type,fn){ el.attachEvent('on'+type,function(){ returnfn.call(el,window.event); }); } } })();
移除事件
varremoveEvent=function(obj,type,fn){ if(obj.removeEventListener) obj.removeEventListener(type,fn,false); elseif(obj.detachEvent){ obj.detachEvent("on"+type,obj["e"+type+fn]); obj["e"+type+fn]=null; } }
加载事件与脚本
varloadEvent=function(func){ varoldonload=window.onload; if(typeofwindow.onload!='function'){ window.onload=func; }else{ window.onload=function(){ oldonload(); func(); } } }
阻止事件
varcancelEvent=function(event){ event=event||window.event if(event.preventDefault){ event.preventDefault(); event.stopPropagation(); }else{ event.returnValue=false; event.cancelBubble=true; } }
取得事件源对象
相当于Prototype.js框架的Event.element(e)vargetTarget=function(event){
event=event||window.event;
varobj=event.srcElement?event.srcElement:event.target;
returnobj
}
相关文章推荐
- javascript 处理事件绑定的一些兼容写法
- javascript处理事件的一些兼容写法
- 【转载】JavaScript处理事件的一些兼容写法
- javascript处理事件的一些兼容写法
- javascript处理事件的一些兼容写法
- javascript 处理事件绑定的一些兼容写法
- javascript处理事件的兼容写法
- javascript IE与FireFox 一些兼容写法 (小技巧七)
- javascript事件兼容处理以及时间冒牌、捕获
- javascript在大部分浏览器上兼容的事件代码写法
- javascript阻止事件冒泡的兼容写法及其相关示例
- Javascript关于绑定事件方法attachEvent和addEventListener区别与兼容写法
- JavaScript 学习笔记【二】——事件侦听兼容写法
- javascript事件处理--关于事件的一些基础定义
- 常见的原生javascript事件处理与浏览器兼容问题(上)
- 兼容firefox和ie的javascript的一些写法
- javascript浏览器兼容教程之事件处理
- 处理事件的兼容写法
- javascript中一些简单事件的处理
- javascript浏览器兼容教程之事件处理