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

首頁(yè) > 編程 > JavaScript > 正文

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

2019-11-20 08:42:19
字體:
供稿:網(wǎng)友

本文實(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í)有所幫助,也希望大家多多支持武林網(wǎng)。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 仲巴县| 繁峙县| 穆棱市| 榆树市| 平阴县| 调兵山市| 阿勒泰市| 定安县| 清水河县| 洞口县| 临夏市| 闵行区| 岳阳县| 宁国市| 武冈市| 乐平市| 余干县| 日照市| 怀柔区| 中超| 金山区| 邯郸市| 怀远县| 桦南县| 班玛县| 昌邑市| 河北区| 东乡族自治县| 玛纳斯县| 绥芬河市| 临城县| 桐梓县| 盖州市| 平远县| 尚义县| 崇阳县| 合川市| 罗山县| 罗定市| 东山县| 讷河市|