手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆

javascript处理事件的一些兼容写法

首页 > Javascript >

 

司徒正美的一些关于javascript的处理的兼容写法。如果不想用这些,可以直接用jQuery中的功能。如bind,unbind,$('XX'),$(document).ready()等

绑定事件

JavaScript代码
  1. var addEvent = function( obj, type, fn ) {  
  2.     if (obj.addEventListener)  
  3.         obj.addEventListener( type, fn, false );  
  4.     else if (obj.attachEvent) {  
  5.         obj["e"+type+fn] = fn;  
  6.         obj.attachEvent( "on"+type, function() {  
  7.             obj["e"+type+fn]();  
  8.         } );  
  9.     }  
  10. };  

另一个实现

JavaScript代码
  1. var addEvent = (function () {   
  2.     if (document.addEventListener) {   
  3.         return function (el, type, fn) {   
  4.             el.addEventListener(type, fn, false);   
  5.         };   
  6.     } else {   
  7.         return function (el, type, fn) {   
  8.             el.attachEvent('on' + type, function () {   
  9.                 return fn.call(el, window.event);   
  10.             });   
  11.         }   
  12.     }   
  13. })();  

移除事件

JavaScript代码
  1. var removeEvent = function(obj, type, fn) {  
  2.     if (obj.removeEventListener)  
  3.         obj.removeEventListener( type, fn, false );  
  4.     else if (obj.detachEvent) {  
  5.         obj.detachEvent( "on"+type, obj["e"+type+fn] );  
  6.         obj["e"+type+fn] = null;  
  7.     }  
  8. }  

加载事件与脚本

JavaScript代码
  1. var loadEvent = function(func) {  
  2.     var oldonload = window.onload;  
  3.     if (typeof window.onload != 'function') {  
  4.         window.onload = func;  
  5.     }else {  
  6.         window.onload = function() {  
  7.             oldonload();  
  8.             func();  
  9.         }  
  10.     }  
  11. }  

阻止事件

JavaScript代码
  1. var cancelEvent = function(event) {  
  2.     event = event||window.event  
  3.     if (event.preventDefault) {  
  4.         event.preventDefault(  );  
  5.         event.stopPropagation(  );  
  6.     } else {  
  7.         event.returnValue = false;  
  8.         event.cancelBubble = true;  
  9.     }  
  10. }  

取得事件源对象

相当于Prototype.js框架的Event.element(e)

JavaScript代码
  1. var getTarget = function(event){  
  2.     event = event || window.event;  
  3.     var obj = event.srcElement ? event.srcElement : event.target;  
  4.     return obj  
  5. }  



本站采用创作共享版权协议, 要求署名、非商业和保持一致. 本站欢迎任何非商业应用的转载, 但须注明出自"易栈网-膘叔", 保留原始链接, 此外还必须标注原文标题和链接.

« 上一篇 | 下一篇 »

发表评论

评论内容 (必填):