jQuery event.isPropagationStopped() 方法



jQuery 的 event.isPropagationStopped() 方法用於檢查是否曾經在此事件物件上呼叫過 event.stopPropagation()

如果已經呼叫了 jQuery event.stopPropagation() 方法,則此方法返回布林值“true”,否則返回“false”。

語法

以下是 jQuery event.isPropagationStopped() 方法的語法:

event.isPropagationStopped() 

引數

  • 此方法不接受任何引數。

返回值

如果已經呼叫了 event.stopPropagation() 方法,則此方法返回“true”,否則返回“false”。

示例 1

如果已經呼叫了 event.isPropagationStopped() 方法,則此方法返回 “true”

以下是 jQuery event.isPropagationStopped() 方法的基本示例:

<html>
   <head>
      <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
      <style>
        div{ 
            margin:10px;
            padding:12px; 
            border:2px solid #666; 
            width:160px;
            color: white;
        }
      </style>
    </head>
    <body>
       <p>Click on any box to see the effect:</p>
       <div id = "div1" style = "background-color:blue;">
          OUTER BOX
          <div id = "div2" style = "background-color:red;">
             INNER BOX
             </div> 
        </div>
    <script>
    $(document).ready(function() {
        $("div").click(function(event){	
            alert("This is: " + $(this).text());
            event.stopPropagation();
            alert("Is propagation stopped? " + event.isPropagationStopped());
        });	
    });
      </script>
   </body>
</html>

輸出

以上程式顯示兩個巢狀的 div 元素。當點選一個 div 時,彈出視窗會指示點選了哪個 div。彈出視窗還會顯示“true”,如果呼叫了 event.stopPropagation(),則表示事件傳播已停止。


示例 2

如果尚未在事件處理程式上呼叫 event.stopPropagation(),則 event.isPropagationStopped() 方法將返回“false”。

<html>
   <head>
      <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
      <style>
        div{ 
            margin:10px;
            padding:12px; 
            border:2px solid #666; 
            width:160px;
            color: white;
        }
        span{
            color: red;
            margin: 10px 0px;
        }
      </style>
    </head>
    <body>
        <p>Click on any box to see the effect:</p>
        <div id = "div1" style = "background-color:rgb(76, 227, 38);">
            OUTER BOX
            <div id = "div2" style = "background-color:rgb(24, 118, 41);">
                INNER BOX
            </div> 
        </div>
        <button>Check</button><br><span></span>
    <script>
    $(document).ready(function() {
        $("div").click(function(event){	
            alert("This is: " + $(this).text());
            $('button').click(function(){
                if(event.isPropagationStopped()){
                    $('span').text("Is propagation stopped? " + event.isPropagationStopped());
                }
                else{
                    $('span').text("Is propagation stopped? " + event.isPropagationStopped());
                }
            })
        });	
    });
      </script>
   </body>
</html>

輸出

執行以上程式後,會顯示兩個巢狀的 div 和一個按鈕元素。當點選任何一個 div 時,會顯示訊息指示點選了哪個 div。如果點選按鈕,“false”將會被列印。


jquery_ref_events.htm
廣告

© . All rights reserved.