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
广告