當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


JQuery event.stopImmediatePropagation()用法及代碼示例

用法
event.stopImmediatePropagation() => undefined

說明:阻止其餘的處理程序被執行,並防止事件在 DOM 樹中冒泡。

  • 添加的版本:1.3event.stopImmediatePropagation()

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

除了阻止執行元素上的任何其他處理程序外,此方法還通過隱式調用 event.stopPropagation() 來停止冒泡。為了簡單地防止事件冒泡到祖先元素,但允許其他事件處理程序在同一元素上執行,我們可以使用 event.stopPropagation() 代替。

使用 event.isImmediatePropagationStopped() 了解是否曾調用過此方法(在該事件對象上)。

其他注意事項:

  • 由於 .live() 方法在事件傳播到文檔頂部後處理事件,因此無法停止實時事件的傳播。同樣,由.delegate() 處理的事件將傳播到它們被委托的元素;在調用委托的事件處理程序時,綁定在 DOM 樹中它下麵的任何元素上的事件處理程序將已經被執行。因此,這些處理程序可能會阻止委托處理程序通過調用 event.stopPropagation() 或返回 false 來觸發。

例子:

防止調用其他事件處理程序。

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>event.stopImmediatePropagation demo</title>
  <style>
  p {
    height: 30px;
    width: 150px;
    background-color: #ccf;
  }
  div {
    height: 30px;
    width: 150px;
    background-color: #cfc;
  }
  </style>
  <script src="https://code.jquery.com/jquery-3.5.0.js"></script>
</head>
<body>
 
<p>paragraph</p>
<div>division</div>
 
<script>
$( "p" ).click(function( event ) {
  event.stopImmediatePropagation();
});
$( "p" ).click(function( event ) {
  // This function won't be executed
  $( this ).css( "background-color", "#f00" );
});
$( "div" ).click(function( event ) {
  // This function will be executed
  $( this ).css( "background-color", "#f00" );
});
</script>
 
</body>
</html>

演示:

相關用法


注:本文由純淨天空篩選整理自jquery.com大神的英文原創作品 event.stopImmediatePropagation()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。