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

詳解javascript事件綁定使用方法

 更新時(shí)間:2016年10月20日 09:44:25   作者:張飛翔  
這篇文章主要為大家詳細(xì)介紹了javascript事件綁定使用方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

由于html是從上至下加載的,通常我們?nèi)绻趆ead部分引入javascript文件,那么我們都會(huì)在javascript的開頭添加window.onload事件,防止在文檔問(wèn)加載完成時(shí)進(jìn)行DOM操作所出現(xiàn)的錯(cuò)誤。如果有多個(gè)javascript文件,那么極有可能出現(xiàn)多個(gè)window.onload事件,但是最后起作用的只有一個(gè),這時(shí)候就需要使用事件綁定來(lái)解決這個(gè)問(wèn)題了。

IE方式
attachEvent(事件名稱, 函數(shù)),綁定事件處理函數(shù)
detachEvent(事件名稱, 函數(shù)),解除綁定

DOM方式
addEventListener(事件名稱,函數(shù), 捕獲)
removeEventListener(事件名稱, 函數(shù), 捕獲)

<!DOCTYPE HTML> 
<html> 
<head> 
<meta charset="utf-8"> 
<title>無(wú)標(biāo)題文檔</title> 
<script> 
window.onload=function () 
{ 
  var oBtn=document.getElementById('btn1'); 
  oBtn.onclick=function () 
  { 
    alert('a'); 
  }; 
   
  oBtn.onclick=function () 
  { 
    alert('b'); 
  }; 
}; 
</script> 
</head> 
<body> 
<input id="btn1" type="button" value="按鈕" /> 
</body> 
</html> 

這段代碼,運(yùn)行結(jié)果是彈出b,因?yàn)橛袃蓚€(gè)oBtn的點(diǎn)擊事件,但是只執(zhí)行了最后一個(gè),這時(shí)候就體現(xiàn)出事件綁定的重要性了。

<!DOCTYPE HTML> 
<html> 
<head> 
<meta charset="utf-8"> 
<title>無(wú)標(biāo)題文檔</title> 
<script> 
window.onload=function () 
{ 
  var oBtn=document.getElementById('btn1'); 
  //IE瀏覽器 
  if(oBtn.attachEvent) 
  { 
    oBtn.attachEvent('onclick', function () 
    { 
      alert('a'); 
    }); 
    oBtn.attachEvent('onclick', function () 
    { 
      alert('b'); 
    }); 
  } 
  //其他瀏覽器 
  else 
  { 
    oBtn.addEventListener('click', function () 
    { 
      alert('a'); 
    }, false); 
    oBtn.addEventListener('click', function () 
    { 
      alert('b'); 
    }, false); 
  } 
   
}; 
</script> 
</head> 
<body> 
<input id="btn1" type="button" value="按鈕" /> 
</body> 
</html> 

當(dāng)你使用事件綁定的時(shí)候,那么兩次點(diǎn)擊事件都會(huì)執(zhí)行,只是執(zhí)行順序在不同瀏覽器是不同的。在IE中是自下而上執(zhí)行,而在其他瀏覽器中是自上而下,不過(guò)由于alert的特殊性我們可以看出差別,其他語(yǔ)句基本等同于沒(méi)有差別,但是在對(duì)于一些對(duì)時(shí)間要求嚴(yán)格是事件的使用時(shí)還是需要注意的,比如之前有一篇文章圖片輪播中的setInterval對(duì)時(shí)間的細(xì)微的差別最后導(dǎo)致滾動(dòng)混亂。 基于原生javascript的圖片輪播domo

最后將我們的代碼整理成函數(shù),便于之后的使用

function myAddEvent(obj, ev, fn) 
{ 
  if(obj.attachEvent) 
  { 
    obj.attachEvent('on'+ev, fn); 
  } 
  else 
  { 
    obj.addEventListener(ev, fn, false); 
  } 
} 

這時(shí)候如果需要使用多個(gè)window.onload事件其實(shí)就和使用多個(gè)oBtn.onclick事件差不多了。如下調(diào)用函數(shù)即可。

myAddEvent(window,'load',function () 
{ 
  alert('a'); 
}); 
myAddEvent(window,'load',function () 
{ 
  alert('b'); 

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

苏尼特左旗| 海城市| 漯河市| 潍坊市| 万源市| 巴楚县| 景谷| 仁化县| 揭东县| 虞城县| 邳州市| 阳曲县| 九龙县| 罗源县| 哈密市| 宝丰县| 江孜县| 邳州市| 安塞县| 青田县| 罗江县| 瑞金市| 双桥区| 怀来县| 武宣县| 铜山县| 韶山市| 易门县| 华坪县| 错那县| 桦南县| 庐江县| 桐柏县| 枣阳市| 罗田县| 双鸭山市| 无为县| 政和县| 辉县市| 荔浦县| 贵溪市|