国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

JavaScript實現(xiàn)添加及刪除事件的方法小結

2019-11-20 11:55:22
字體:
供稿:網(wǎng)友

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

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

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

function $(id){return document.getElementByIdx_x(id);}var ev = null;var count1  = 0;var count2  = 0;var oncount1 = 0;var oncount2 = 0;var isSetEv1 = false;var isSetEv2 = false;//創(chuàng)建事件的通用函數(shù)var EventUtil = function(){};var flag = new Flag();//監(jiān)控變量值function Flag(){var tempflag = false;var method = null;this.SetMethod = function(value){  method = value;} this.SetValue = function(value){    tempflag = value;    if(tempflag == true && method){eval_r(method)} }this.GetValue = function(){  return tempflag;}}EventUtil.addEventHandler = function(obj,EventType,Handler){//如果是FFif(obj.addEventListener){  obj.addEventListener(EventType,Handler,false);} //如果是IEelse if(obj.attachEvent){  obj.attachEvent('on'+EventType,Handler);} else{  obj['on'+EventType] = Handler;}}//取消事件傳入的參數(shù)值要跟綁定時完全一樣才可以EventUtil.removeEventHandler = function(obj,EventType,Handler){//如果是FFif(obj.removeEventListener){  obj.removeEventListener(EventType,Handler,false);} //如果是IEelse if(obj.detachEvent){  obj.detachEvent('on'+EventType,Handler);} else{  obj['on'+EventType] = Handler;}}function setEvent1(e){ev = e;//針對火狐獲取event相關屬性 flag.SetMethod('addList1()');flag.SetValue (true);}function setEvent2(e){ev = e;//針對火狐獲取event相關屬性flag.SetMethod('addList2()');flag.SetValue (true);}function isSetEvent1(state){isSetEv1 = state;//ie下方法名不能和全局變量名相同}function isSetEvent2(state){isSetEv2 = state;}function add1(obj){oncount1 = oncount1 + 1;if(isSetEv1){  obj.innerHTML = "設置了事件,添加了 <b>" + oncount1 + "</b> 篇文章,左邊列表1自動增加!";}else{  obj.innerHTML = "沒有設置事件,添加了 <b>" + oncount1 + "</b> 篇文章,左邊列表1沒有變化!";}}function add2(obj){oncount2 = oncount2 + 1;if(isSetEv2){  obj.innerHTML = "設置了事件,添加了 <b>" + oncount2 + "</b> 篇文章,左邊列表2自動增加!";}else{  obj.innerHTML = "沒有設置事件,添加了 <b>" + oncount2 + "</b> 篇文章,左邊列表2沒有變化!";}}function addList1(){count1 = count1 + 1;$("list1").innerHTML = "動態(tài)添加了 <b>" + count1 + "</b> 篇文章了!";}function addList2(){count2 = count2 + 1;$("list2").innerHTML = "動態(tài)添加了 <b>" + count2 + "</b> 篇文章了!";}

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

//通用的添加和刪除事件的方法(兼容IE和firefox)function AddEventHandler(oTarget, sEventType, fnHandler){  if (oTarget.addEventListener) {//非IE  oTarget.addEventListener(sEventType, fnHandler, false);  }else if (oTarget.attachEvent) {//IE   oTarget.attachEvent('on' + sEventType, fnHandler);  }else {   oTarget['on' + sEventType] = fnHandler;  }}function RemoveEventHandler(oTarget, sEventType, fnHandler){  if (oTarget.removeEventListener) {//非IE  oTarget.removeEventListener(sEventType, fnHandler, false);  }else if (oTarget.detachEvent) {//IE   oTarget.detachEvent('on' + sEventType, fnHandler);  }else {   oTarget['on' + sEventType] = null;  }}

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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>JavaScript添加、刪除事件的方法</title><script type="text/javascript">var EventUtil=new Object;EventUtil.addEvent=function(oTarget,sEventType,funName){  if(oTarget.addEventListener){//for DOM; oTarget.addEventListener(sEventType,funName, false); }else if(oTarget.attachEvent){ oTarget.attachEvent("on"+sEventType,funName); }else{ oTarget["on"+sEventType]=funName; }};EventUtil.removeEvent=function(oTarget,sEventType,funName){  if(oTarget.removeEventListener){//for DOM; oTarget.removeEventListener(sEventType,funName, false); }else if(oTarget.detachEvent){ oTarget.detachEvent("on"+sEventType,funName); }else{ oTarget["on"+sEventType]=null; }};function removeClick(){ alert("click"); var oDiv=document.getElementById("odiv"); oDiv.style.cursor="auto"; EventUtil.removeEvent(oDiv,"click",removeClick);}function addLoadEvent(func){  var oldonload=window.onload;  if(typeof window.onload !="function"){    window.onload=func;  }else{    window.onload=function(){      oldonload();      func();    }  }}addLoadEvent(addClick);function addClick(){ var oDiv=document.getElementById("odiv"); oDiv.style.cursor="pointer"; EventUtil.addEvent(oDiv,"click",removeClick);}</script></head><body><p>第一次點的時候彈出警告,并移除click事件,再點點擊就失效了</p><div id="odiv" style="background:#003399; height:70px; width:126px; margin:0 auto; color:skyblue; ">第一次警告,第二次沒反應!</div></body></html>

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

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 祁门县| 乐安县| 招远市| 龙州县| 湖南省| 永昌县| 安溪县| 武汉市| 衡阳市| 栖霞市| 琼结县| 凯里市| 青川县| 千阳县| 南宫市| 教育| 茂名市| 阿鲁科尔沁旗| 汶上县| 海淀区| 财经| 莱芜市| 张家界市| 根河市| 奉贤区| 岑溪市| 泽库县| 若羌县| 西吉县| 新营市| 涪陵区| 青阳县| 朝阳县| 玉溪市| 剑阁县| 贵德县| 南投县| 大安市| 广州市| 栾川县| 泾源县|