最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2015年08月04日 15:31:32   作者:皮蛋  
這篇文章主要介紹了JavaScript實(shí)現(xiàn)添加及刪除事件的方法,實(shí)例總結(jié)了javascript對(duì)事件的添加及刪除的技巧,涉及javascript事件綁定的方法及瀏覽器兼容的相關(guān)注意事項(xiàng),需要的朋友可以參考下

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

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

先來看看一個(gè)比較簡(jiǎn)單的例子:

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)
{
//如果是FF
if(obj.addEventListener)
{
  obj.addEventListener(EventType,Handler,false);
} 
//如果是IE
else if(obj.attachEvent)
{
  obj.attachEvent('on'+EventType,Handler);
} 
else
{
  obj['on'+EventType] = Handler;
}
}
//取消事件傳入的參數(shù)值要跟綁定時(shí)完全一樣才可以
EventUtil.removeEventHandler = function(obj,EventType,Handler)
{
//如果是FF
if(obj.removeEventListener)
{
  obj.removeEventListener(EventType,Handler,false);
} 
//如果是IE
else if(obj.detachEvent)
{
  obj.detachEvent('on'+EventType,Handler);
} 
else
{
  obj['on'+EventType] = Handler;
}
}
function setEvent1(e)
{
ev = e;//針對(duì)火狐獲取event相關(guān)屬性 
flag.SetMethod('addList1()');
flag.SetValue (true);
}
function setEvent2(e)
{
ev = e;//針對(duì)火狐獲取event相關(guān)屬性
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 = "設(shè)置了事件,添加了 <b>" + oncount1 + "</b> 篇文章,左邊列表1自動(dòng)增加!";
}
else
{
  obj.innerHTML = "沒有設(shè)置事件,添加了 <b>" + oncount1 + "</b> 篇文章,左邊列表1沒有變化!";
}
}
function add2(obj)
{
oncount2 = oncount2 + 1;
if(isSetEv2)
{
  obj.innerHTML = "設(shè)置了事件,添加了 <b>" + oncount2 + "</b> 篇文章,左邊列表2自動(dòng)增加!";
}
else
{
  obj.innerHTML = "沒有設(shè)置事件,添加了 <b>" + oncount2 + "</b> 篇文章,左邊列表2沒有變化!";
}
}
function addList1()
{
count1 = count1 + 1;
$("list1").innerHTML = "動(dòng)態(tài)添加了 <b>" + count1 + "</b> 篇文章了!";
}
function addList2()
{
count2 = count2 + 1;
$("list2").innerHTML = "動(dòng)態(tài)添加了 <b>" + count2 + "</b> 篇文章了!";
}

再來看看一個(gè)簡(jiǎn)化的例子:

//通用的添加和刪除事件的方法(兼容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;
  }
}

最后再來看一個(gè)完整的實(shí)例:

<!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>第一次點(diǎn)的時(shí)候彈出警告,并移除click事件,再點(diǎn)點(diǎn)擊就失效了</p>
<div id="odiv" style="background:#003399; height:70px; width:126px; margin:0 auto; color:skyblue; ">第一次警告,第二次沒反應(yīng)!</div>
</body>
</html>

希望本文所述對(duì)大家的javascript程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • 談一談javascript中繼承的多種方式

    談一談javascript中繼承的多種方式

    本文就和大家談一談javascript中的繼承,什么是繼承,繼承的作用,以及js繼承的實(shí)現(xiàn)代碼,感興趣的小伙伴們可以參考一下
    2016-02-02
  • 前端大文件分片下載具體實(shí)現(xiàn)方法(看這一篇就夠了)

    前端大文件分片下載具體實(shí)現(xiàn)方法(看這一篇就夠了)

    本文介紹了在瀏覽器中下載大文件的技術(shù)方案,包括分片下載、斷點(diǎn)續(xù)傳、進(jìn)度條顯示、取消及暫停下載和文件合并等功能,分片下載可以降低網(wǎng)絡(luò)傳輸中斷的風(fēng)險(xiǎn),并減少內(nèi)存占用,需要的朋友可以參考下
    2024-10-10
  • javascript 實(shí)現(xiàn)劃詞標(biāo)記劃詞搜索功能

    javascript 實(shí)現(xiàn)劃詞標(biāo)記劃詞搜索功能

    在頁面中加上這串代碼就行了,同時(shí)還有搜索功能。
    2009-10-10
  • Javacript實(shí)現(xiàn)顏色梯度變化和漸變的效果代碼

    Javacript實(shí)現(xiàn)顏色梯度變化和漸變的效果代碼

    用js對(duì)導(dǎo)航欄的顏色做了梯度的變化處理,通過處理..獲取兩種顏色在變化時(shí)的各種顏色字符串,并且字符串的個(gè)數(shù),即獲取的頻率可以調(diào)節(jié)
    2013-05-05
  • mui back 返回刷新頁面的實(shí)例

    mui back 返回刷新頁面的實(shí)例

    下面小編就為大家分享一篇mui back 返回刷新頁面的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2017-12-12
  • js實(shí)現(xiàn)圓形菜單選擇器

    js實(shí)現(xiàn)圓形菜單選擇器

    這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)圓形菜單選擇器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-12-12
  • 小程序自定義組件全局樣式不生效的解決方法

    小程序自定義組件全局樣式不生效的解決方法

    在使用原生框架開發(fā)小程序時(shí)遇到一個(gè)問題,在 app.wxss 中定義的全局樣式在自定義組件中不生效,本文就詳細(xì)的介紹一下,感興趣的可以了解一下
    2021-08-08
  • KnockoutJS 3.X API 第四章之click綁定

    KnockoutJS 3.X API 第四章之click綁定

    click綁定主要作用是用于DOM元素被點(diǎn)擊時(shí)調(diào)用相關(guān)JS函數(shù)。這篇文章主要介紹了KnockoutJS 3.X API 第四章之click綁定,感興趣的朋友一起看看吧
    2016-10-10
  • js實(shí)現(xiàn)詳情頁放大鏡效果

    js實(shí)現(xiàn)詳情頁放大鏡效果

    這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)詳情頁放大鏡效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-10-10
  • 原生js實(shí)現(xiàn)輪播圖

    原生js實(shí)現(xiàn)輪播圖

    這篇文章主要為大家詳細(xì)介紹了原生js實(shí)現(xiàn)輪播圖的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-02-02

最新評(píng)論

广西| 贺州市| 柳河县| 玉环县| 阿尔山市| 元朗区| 定南县| 黎平县| 余姚市| 安丘市| 肥东县| 额济纳旗| 锡林郭勒盟| 奉节县| 湖口县| 汶上县| 汽车| 盐亭县| 夏津县| 策勒县| 老河口市| 宜都市| 调兵山市| 金昌市| 北辰区| 普宁市| 司法| 延吉市| 武乡县| 册亨县| 开阳县| 西盟| 永济市| 郁南县| 四川省| 都江堰市| 抚宁县| 铁岭县| 陈巴尔虎旗| 当涂县| 万州区|