jQuery event.stopImmediatePropagation()

admin發表於2017-02-20
此方法可以阻止剩餘的事件處理函式執行並且防止事件冒泡到DOM樹上。

除了阻止元素上其它的事件處理函式的執調行,這個方法還會通過在內部用event.stopPropagation()來停止事件冒泡。如果僅僅想要停止事件冒泡到前輩元素上,而讓這個元素上的其它事件處理函式繼續執行,可以使用event.stopPropagation()來代替。

語法結構:

[JavaScript] 純文字檢視 複製程式碼
event.stopImmediatePropagation()

引數解析:

此方法不接收任何引數。

jQuery1.3版本新增。

程式碼例項:

[HTML] 純文字檢視 複製程式碼執行程式碼
<!DOCTYPE html>
<html>
<head>
<meta charset=" utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>螞蟻部落</title>
<style type="text/css">
* {
  padding: 0px;
  margin: 0px;
}
div {
  width: 150px;
  height: 150px;
  background-color: blue;
}
ul, li {
  list-style: none;
  width: 100px;
  height: 100px;
  background-color: red;
}
span {
  width: 50px;
  height: 50px;
  display: block;
  background-color: green;
}
</style>
<script src="https://code.jquery.com/jquery-3.0.0.js"></script>
<script type="text/javascript">
$(document).ready(function () {
  $("div").click(function () {
    alert("div元素");
  })
  $("ul").click(function () {
    alert("ul元素");
  })
  $("span").click(function (e) {
    alert("span元素");
    e.stopImmediatePropagation()
  })
  $("span").click(function (e) {
    $(this).text("您好");
  })
})
</script>
</head>
<body>
<div>
  <ul>
    <li><span></span></li>
  </ul>
</div>
</body>
</html>

在以上程式碼中新增了e.stopImmediatePropagation(),所以點選span元素後,只會執行第一個繫結的事件處理函式,第二個不會執行,並且事件冒泡現象也不會出現。

相關文章