麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 語言 > JavaScript > 正文

JavaScript實現添加及刪除事件的方法小結

2024-05-06 16:24:21
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了JavaScript實現添加及刪除事件的方法,實例總結了javascript對事件的添加及刪除的技巧,涉及javascript事件綁定的方法及瀏覽器兼容的相關注意事項,需要的朋友可以參考下

本文實例總結了JavaScript實現添加及刪除事件的方法。分享給大家供大家參考。具體如下:

JavaScript添加、刪除事件的方法,也就是讓某些方法生效指定次數,可以是一次、兩次或更多次,但指定次數執行完畢后就刪除該方法,使其失效,如果你經常從事JS編程,你就會知道這種功能用得比較多。

先來看看一個比較簡單的例子:

 

 
  1. function $(id) 
  2. return document.getElementByIdx_x(id); 
  3. var ev = null
  4. var count1 = 0; 
  5. var count2 = 0; 
  6. var oncount1 = 0; 
  7. var oncount2 = 0; 
  8. var isSetEv1 = false
  9. var isSetEv2 = false
  10. //創建事件的通用函數 
  11. var EventUtil = function(){}; 
  12. var flag = new Flag(); 
  13. //監控變量值 
  14. function Flag() 
  15. var tempflag = false
  16. var method = null
  17. this.SetMethod = function(value) 
  18. method = value; 
  19. }  
  20. this.SetValue = function(value) 
  21. tempflag = value; 
  22. if(tempflag == true && method){eval_r(method)}  
  23. this.GetValue = function() 
  24. return tempflag; 
  25. EventUtil.addEventHandler = function(obj,EventType,Handler) 
  26. //如果是FF 
  27. if(obj.addEventListener) 
  28. obj.addEventListener(EventType,Handler,false); 
  29. }  
  30. //如果是IE 
  31. else if(obj.attachEvent) 
  32. obj.attachEvent('on'+EventType,Handler); 
  33. }  
  34. else 
  35. obj['on'+EventType] = Handler; 
  36. //取消事件傳入的參數值要跟綁定時完全一樣才可以 
  37. EventUtil.removeEventHandler = function(obj,EventType,Handler) 
  38. //如果是FF 
  39. if(obj.removeEventListener) 
  40. obj.removeEventListener(EventType,Handler,false); 
  41. }  
  42. //如果是IE 
  43. else if(obj.detachEvent) 
  44. obj.detachEvent('on'+EventType,Handler); 
  45. }  
  46. else 
  47. obj['on'+EventType] = Handler; 
  48. function setEvent1(e) 
  49. ev = e;//針對火狐獲取event相關屬性  
  50. flag.SetMethod('addList1()'); 
  51. flag.SetValue (true); 
  52. function setEvent2(e) 
  53. ev = e;//針對火狐獲取event相關屬性 
  54. flag.SetMethod('addList2()'); 
  55. flag.SetValue (true); 
  56. function isSetEvent1(state) 
  57. isSetEv1 = state;//ie下方法名不能和全局變量名相同 
  58. function isSetEvent2(state) 
  59. isSetEv2 = state; 
  60. function add1(obj) 
  61. oncount1 = oncount1 + 1; 
  62. if(isSetEv1) 
  63. obj.innerHTML = "設置了事件,添加了 <b>" + oncount1 + "</b> 篇文章,左邊列表1自動增加!"
  64. else 
  65. obj.innerHTML = "沒有設置事件,添加了 <b>" + oncount1 + "</b> 篇文章,左邊列表1沒有變化!"
  66. function add2(obj) 
  67. oncount2 = oncount2 + 1; 
  68. if(isSetEv2) 
  69. obj.innerHTML = "設置了事件,添加了 <b>" + oncount2 + "</b> 篇文章,左邊列表2自動增加!"
  70. else 
  71. obj.innerHTML = "沒有設置事件,添加了 <b>" + oncount2 + "</b> 篇文章,左邊列表2沒有變化!"
  72. function addList1() 
  73. count1 = count1 + 1; 
  74. $("list1").innerHTML = "動態添加了 <b>" + count1 + "</b> 篇文章了!"
  75. function addList2() 
  76. count2 = count2 + 1; 
  77. $("list2").innerHTML = "動態添加了 <b>" + count2 + "</b> 篇文章了!"

再來看看一個簡化的例子:

 

 
  1. //通用的添加和刪除事件的方法(兼容IE和firefox) 
  2. function AddEventHandler(oTarget, sEventType, fnHandler){ 
  3. if (oTarget.addEventListener) {//非IE 
  4. oTarget.addEventListener(sEventType, fnHandler, false); 
  5. }else if (oTarget.attachEvent) {//IE 
  6. oTarget.attachEvent('on' + sEventType, fnHandler); 
  7. }else { 
  8. oTarget['on' + sEventType] = fnHandler; 
  9. function RemoveEventHandler(oTarget, sEventType, fnHandler){ 
  10. if (oTarget.removeEventListener) {//非IE 
  11. oTarget.removeEventListener(sEventType, fnHandler, false); 
  12. }else if (oTarget.detachEvent) {//IE 
  13. oTarget.detachEvent('on' + sEventType, fnHandler); 
  14. }else { 
  15. oTarget['on' + sEventType] = null

最后再來看一個完整的實例:

 

 
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
  3. <html xmlns="http://www.w3.org/1999/xhtml"
  4. <head> 
  5. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
  6. <title>JavaScript添加、刪除事件的方法</title> 
  7. <script type="text/javascript"
  8. var EventUtil=new Object; 
  9. EventUtil.addEvent=function(oTarget,sEventType,funName){ 
  10. if(oTarget.addEventListener){//for DOM; 
  11. oTarget.addEventListener(sEventType,funName, false); 
  12. }else if(oTarget.attachEvent){ 
  13. oTarget.attachEvent("on"+sEventType,funName); 
  14. }else
  15. oTarget["on"+sEventType]=funName; 
  16. }; 
  17. EventUtil.removeEvent=function(oTarget,sEventType,funName){ 
  18. if(oTarget.removeEventListener){//for DOM; 
  19. oTarget.removeEventListener(sEventType,funName, false); 
  20. }else if(oTarget.detachEvent){ 
  21. oTarget.detachEvent("on"+sEventType,funName); 
  22. }else
  23. oTarget["on"+sEventType]=null
  24. }; 
  25. function removeClick(){ 
  26. alert("click"); 
  27. var oDiv=document.getElementById("odiv"); 
  28. oDiv.style.cursor="auto"
  29. EventUtil.removeEvent(oDiv,"click",removeClick); 
  30. function addLoadEvent(func){ 
  31. var oldonload=window.onload; 
  32. if(typeof window.onload !="function"){ 
  33. window.onload=func; 
  34. }else
  35. window.onload=function(){ 
  36. oldonload(); 
  37. func(); 
  38. addLoadEvent(addClick); 
  39. function addClick(){ 
  40. var oDiv=document.getElementById("odiv"); 
  41. oDiv.style.cursor="pointer"
  42. EventUtil.addEvent(oDiv,"click",removeClick); 
  43. </script> 
  44. </head> 
  45. <body> 
  46. <p>第一次點的時候彈出警告,并移除click事件,再點點擊就失效了</p> 
  47. <div id="odiv" style="background:#003399; height:70px; width:126px; margin:0 auto; color:skyblue; ">第一次警告,第二次沒反應!</div> 
  48. </body> 
  49. </html> 

希望本文所述對大家的javascript程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 黄色片免费在线播放 | 欧洲成人综合网 | www噜噜偷拍在线视频 | 国产一区二区三区四区五区加勒比 | av性色全交蜜桃成熟时 | 亚洲精品一区二区三区在线看 | 91精品国产综合久久婷婷香蕉 | 久久精品首页 | 毛片在线视频免费观看 | 国产一级二级毛片 | 国产成人免费高清激情视频 | h视频免费观看 | 妇女毛片 | 欧美视频99 | 国产成人av一区二区 | 国产精品久久久久久久午夜片 | 草莓福利视频在线观看 | 国语自产免费精品视频在 | 亚洲精品午夜国产va久久成人 | av影院在线播放 | 日本视频免费看 | 久久99精品久久久久久久久久久久 | 免费男女乱淫真视频 | 精品日韩欧美 | 国产精品亚洲一区二区三区久久 | 午夜爽爽爽男女免费观看hd | 天堂成人国产精品一区 | 99久久电影| 日本成人一区二区三区 | 久久国产精品成人免费网站 | 午夜视| 天天透天天狠天天爱综合97 | 欧美a一| 免费亚洲视频在线观看 | 久草在线最新免费 | 久久蜜桃香蕉精品一区二区三区 | 精品一区二区久久久久久按摩 | 毛片区| 中文欧美日韩 | 毛片在线视频在线播放 | 成人资源在线观看 |