stopImmediatePropagation()方法是jQuery中一个内置方法,属于Event对象;用于阻止为所选元素执行其他事件处理程序,并防止当前事件在DOM树上冒泡。
语法:
event.stopImmediatePropagation()
参数:该event参数来自事件绑定函数,不可省略。
返回值:此方法返回所选元素和应用的更改。
示例:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<style>
div {
height: 100px;
width: 300px;
padding: 10px;
border: 1px solid blue;
background-color: lightblue;
}
</style>
</head>
<body>
<div>点击这个 div 元素。</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script>
$(document).ready(function() {
$("div").click(function(event) {
alert("执行的第1个事件");
event.stopImmediatePropagation();
});
$("div").click(function(event) {
alert("执行的第2个事件");
});
$("div").click(function(event) {
alert("执行的第3个事件");
});
});
</script>
</body>
</html>在上面的示例中,有三个弹出。但只弹出第一个窗口,其他两个弹出被stopImmediatePropagation()方法阻止执行了。
示例2:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<style>
body {
width: 70%;
height: 40%;
font-size: 30px;
padding: 20px;
border: 2px solid green;
}
p {
background-color: lightgrey;
}
div {
padding: 4px;
background-color: lightgrey;
}
</style>
</head>
<body>
<p>测试文本!点击p元素</p>
<div >测试文本!点击div元素</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script>
$("p").click(function(event) {
event.stopImmediatePropagation();
});
$("p").click(function(event) {
// This function will not executed
$(this).css("background-color", "yellow");
});
$("div").click(function(event) {
// This function will executed
$(this).css("background-color", "red");
});
</script>
</body>
</html>上例中,点击p元素后发生两个事件,第一个事件为调用stopImmediatePropagation()方法,第二个事件是改变p元素的背景颜色;但当stopImmediatePropagation()方法被调用后,会阻止第二个事件发生,所以点击p元素后,背景颜色不发生改变。








网友评论文明上网理性发言 已有0人参与
发表评论: