91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JavaScript事件捕獲與事件冒泡的示例

發布時間:2020-12-02 10:49:18 來源:億速云 閱讀:127 作者:小新 欄目:web開發

這篇文章主要介紹了JavaScript事件捕獲與事件冒泡的示例,具有一定借鑒價值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。

冒泡機制

氣泡從水底開始往上升,由深到淺,升到最上面。在上升的過程中,氣泡會經過不同深度層次的水。相對應地:這個氣泡就相當于我們這里的事件,而水則相當于我們的整個dom樹;事件從dom 樹的底層,層層往上傳遞,直至傳遞到dom的根節點。當子元素與父元素有相同的事件時,當子元素被觸發時父元素也會被觸發冒泡機制

JavaScript事件捕獲與事件冒泡的示例

在不同瀏覽器中,冒泡的程度不同:
IE 6.0:
p -> body -> html -> document
其他瀏覽器:
p -> body -> html -> document -> window

注意:

并不是所有的事件都能冒泡,以下事件不冒泡:blur、focus、load、unload

當子元素與父元素有相同的事件時,當子元素被觸發時父元素也會被觸發冒泡機制。冒泡事件,如下代碼:

HTML
<p id="father">
    <button id="btn">點擊</button></p>
CSS
father{        width: 300px;        height: 300px;        background-color: red;        margin:  auto;        }
JS
 window.onload = function () {
        var father = document.getElementById("father");        
        var btn = document.getElementById("btn");
        btn.onclick = function () {
            alert("點擊了按鈕");
        };
        father.onclick = function () {
            alert("點擊了父標簽");
        };
        document.onclick = function () {
            alert("點擊了文檔");
        }
    }
效果圖

JavaScript事件捕獲與事件冒泡的示例

在點擊按鈕和紅色區域的時候,事件會一層層的向上傳遞,這個并不是我們想要的效果,那該如何阻止事件冒泡呢?

阻止冒泡的方法

標準瀏覽器 和 ie瀏覽器
w3c:event.stopPropagation() proPagation
IE:event.cancelBubble = true

兼容的寫法
if(event && event.stopPropagation){ // w3c標準
   event.stopPropagation();
}else{ // IE系列 IE 678
   event.cancelBubble = true;
}

阻止冒泡后

JS
window.onload = function () {
  var father = document.getElementById("father");  var btn = document.getElementById("btn");

   btn.onclick = function () {
      if(event && event.stopPropagation){ // w3c標準 阻止冒泡機制
           event.stopPropagation();
      }else{ // IE系列 IE 678
          event.cancelBubble = true;
           }
      alert("點擊了按鈕");
    };
   father.onclick = function () {
      if(event && event.stopPropagation){ // w3c標準 阻止冒泡機制
           event.stopPropagation();
       }else{ // IE系列 IE 678
           event.cancelBubble = true;
           }
      alert("點擊了父標簽");
   };
  document.onclick = function () {
      alert("點擊了文檔");
    }
 }

JavaScript事件捕獲與事件冒泡的示例

需要在那個地方阻止冒泡事件,就在其中添加阻止冒泡的方法;
可以將阻止冒泡的方法封裝為一個函數需要的時候直接調用即可。

感謝你能夠認真閱讀完這篇文章,希望小編分享JavaScript事件捕獲與事件冒泡的示例內容對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,遇到問題就找億速云,詳細的解決方法等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

关岭| 股票| 黎城县| 扎赉特旗| 泸溪县| 中卫市| 香港| 简阳市| 绥滨县| 巴林左旗| 马公市| 甘谷县| 琼海市| 云霄县| 革吉县| 莲花县| 天全县| 喀什市| 鄂州市| 马尔康县| 盐源县| 陕西省| 益阳市| 乌鲁木齐县| 衡南县| 常熟市| 青川县| 金昌市| 阿荣旗| 乌拉特中旗| 汝州市| 宜阳县| 玉环县| 陵川县| 茶陵县| 宁波市| 石柱| 芦山县| 淮南市| 沿河| 溆浦县|