首页 > 语言 > JavaScript > 正文

纯JavaScript实现的兼容各浏览器的添加和移除事件封装

2024-05-06 16:17:45
字体:
来源:转载
供稿:网友

这篇文章主要介绍了纯JavaScript实现的兼容各浏览器的添加和移除事件封装,本文直接给出实现代码,代码中带详细注释,需要的朋友可以参考下

 

  1. //事件处理兼容各种浏览器,采用能力检测方法,所谓能力检测,就是有能力就做,没有能力就不做 
  2.  
  3. //定义一个处理事件的对象,兼容各种浏览器,dom2级事件处理和ie事件,如果这两个事件都不兼容,就采用dom0级处理 
  4. var eventUtil ={ 
  5. addEvent:function(element,type,handler){ 
  6. if (element.addEventListener) { 
  7. //非IE浏览器采用dom2级事件处理,type为事件类型如:click,handler为事件处理函数,false代表事件采用冒泡处理模型,如果是true代表 采用捕获型处理模型 
  8. //除了netbeans采用捕获型处理模型,其他都采用冒泡型处理模型 
  9. //如果是非IE浏览器添加事件为:addEventListener 
  10. element.addEventListener(type,handler,false); 
  11. }else if (element.attachEvent) { 
  12. //如果为IE浏览器,添加事件采用 attachEvent 
  13. element.attachEvent('on'+type,handler); 
  14. }else
  15. element['on'+type] = handler; 
  16. }, 
  17. removeEvent:function(element,type,handler){ 
  18. if (element.removeEventListener) { 
  19. //非IE浏览器采用dom2级事件处理,type为事件类型如:click,handler为事件处理函数,false代表事件采用冒泡处理模型,如果是true代表 采用捕获型处理模型 
  20. //除了netbeans采用捕获型处理模型,其他都采用冒泡型处理模型 
  21. //如果是非IE浏览器添加事件为:removeEventListener 
  22. element.removeEventListener(type,handler,false); 
  23. }else if (element.detachEvent) { 
  24. //如果为IE浏览器,添加事件采用 detachEvent 
  25. element.detachEvent('on'+type,handler); 
  26. }else
  27. //dom0级事件处理,如果删除事件采用赋值null 
  28. element['on'+type] = null
  29. }, 
  30. getEvent:function(event){ 
  31. //获取事件本身 
  32. return event?event:window.event; 
  33. }, 
  34. getType:function(event){ 
  35. //获取事件类型 
  36. return event.type; 
  37. }, 
  38. getElement:function(event){ 
  39. //获取事件作用元素 
  40. return event.target || event.srcElement; 
  41. }, 
  42. preventDefault:function(event){ 
  43. //阻止默认的事件行为 
  44. if(event.preventDefault){ 
  45. event.preventDefault(); 
  46. }else
  47. event.returnValue = false
  48. }, 
  49. stopProPagation:function(event){ 
  50. //停止事件冒泡 
  51. if(event.stopProPagation){ 
  52. event.stopProPagation(); 
  53. }else
  54. event.cancelBubble = true
  55.  
  56.  
  57.  
  58.  
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选