欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

js阻止冒泡和默認(rèn)事件(默認(rèn)行為)詳解

 更新時(shí)間:2016年10月20日 09:51:48   作者:張飛翔  
這篇文章主要為大家詳細(xì)介紹了js阻止冒泡和默認(rèn)事件,即默認(rèn)行為,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了js阻止冒泡默認(rèn)事件方法,供大家參考,具體內(nèi)容如下

阻止冒泡。冒泡簡(jiǎn)單的舉例來說,兒子知道了一個(gè)秘密消息,它告訴了爸爸,爸爸知道了又告訴了爺爺,一級(jí)級(jí)傳遞從而引起事件的混亂,而阻止冒泡就是不讓兒子告訴爸爸,爸爸自然不會(huì)告訴爺爺了。下面的domo就是很好的例子。

<!DOCTYPE html> 
<html> 
 
  <head> 
    <meta charset="UTF-8"> 
    <title></title> 
    <style type="text/css"> 
      #box { 
        width: 300px; 
        height: 300px; 
        background: red; 
        display: none; 
      } 
    </style> 
    <script type="text/javascript"> 
      window.onload = function() { 
          var btn = document.getElementById('btn'); 
          var box = document.getElementById('box'); 
          btn.onclick = function(ev) { 
            var oEvent = ev || event; 
            box.style.display = 'block'; 
            //oEvent.cancelBubble = true;//高版本瀏覽器 
            stopBubble(oEvent); 
            //在低版本的chrome和firefox瀏覽器中需要兼容性處理 
            //高版本chrome和firefox瀏覽器直接使用上面這行代碼即可 
          } 
          document.onclick = function() { 
            box.style.display = 'none'; 
          } 
 
        } 
        //阻止冒泡事件的兼容性處理 
      function stopBubble(e) { 
        if(e && e.stopPropagation) { //非IE 
          e.stopPropagation(); 
        } else { //IE 
          window.event.cancelBubble = true; 
        } 
      } 
    </script> 
  </head> 
 
  <body> 
    <input type="button" id="btn" value="語言" /> 
    <div id="box"></div> 
  </body> 
 
</html> 


我所實(shí)現(xiàn)的效果是:點(diǎn)擊按鈕btn讓box顯示,而點(diǎn)擊其他地方則讓box消失。
如果我不阻止冒泡的話,那么首先btn會(huì)觸發(fā)點(diǎn)擊時(shí)間,讓盒子顯示,但是由于box是包含在document中的,所以會(huì)向上冒泡又觸發(fā)document的點(diǎn)擊事件,盒子又消失。這個(gè)事件的執(zhí)行順序可以在不同的點(diǎn)擊事件中使用alert來驗(yàn)證。關(guān)于cancelBubble的兼容性處理在高版本的chrome和firefox中已經(jīng)不需要兼容處理了,直接使用oEvent.cancelBubble = true 即可。下面的阻止瀏覽器事件的兼容性處理在高版本瀏覽器中同樣不需要。

默認(rèn)事件。即瀏覽器本身具備的功能。

function preventDefa(e){ 
  if(window.event){ 
    //IE中阻止函數(shù)器默認(rèn)動(dòng)作的方式  
    window.event.returnValue = false;  
  } 
  else{ 
    //阻止默認(rèn)瀏覽器動(dòng)作(W3C)  
    e.preventDefault(); 
  }  
} 

這種是兼容性寫法,但是如果你只需要支持高版本瀏覽器的話,那么如上文一樣,一句話即可。

btn.onclick = function (){ 
  return false; 
} 

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

相關(guān)文章

最新評(píng)論