jQuery阻止同類型事件小結(jié)
更新時間:2013年04月19日 14:54:37 作者:
事件追加:點擊green元素會依次執(zhí)行g(shù)reen click1、green click2兩個事件(同一元素的同類型事件),感興趣的朋友可以參考下哈
復(fù)制代碼 代碼如下:
<!DOCTYPE HTML>
<html>
<head>
<title>test</title>
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
</head>
<body>
<div style="height:300px;background-color:red;" id="red">
<div style="height:200px;background-color:green;" id="green">
</div>
</div>
</body>
</html>
在上面的HTML中,red元素是green元素的父元素。
復(fù)制代碼 代碼如下:
$(function(){
$("#green").click(function(event){
alert("green click1");
});
$("#green").click(function(event){
alert("green click2");
});
$("#red").click(function(event){
alert("red click");
});
});
上面的js代碼給red元素和green元素添加了三個click事件。
當(dāng)點擊子元素green元素時,會依次執(zhí)行g(shù)reen click1、green click2、red click事件。
事件追加:點擊green元素會依次執(zhí)行g(shù)reen click1、green click2兩個事件(同一元素的同類型事件)。
事件冒泡:點擊green元素會觸發(fā)父元素的red click事件(父級元素的同類型事件)。
1、 在子元素事件函數(shù)中阻止事件冒泡
方法1:event.stopPropagation()
復(fù)制代碼 代碼如下:
$(function(){
$("#green").click(function(event){
event.stopPropagation();
alert("green click");
});
$("#red").click(function(event){
alert("red click");
});
});
方法2:return false
復(fù)制代碼 代碼如下:
$(function(){
$("#green").click(function(event){
alert("green click");
return false;
});
$("#red").click(function(event){
alert("red click");
});
});
通過上面的兩種方法,點擊子元素green區(qū)域后,red click事件被阻止不再執(zhí)行。但不會影響red元素其他區(qū)域的點擊。
二者區(qū)別:
return false相當(dāng)于event.preventDefault()+event.stopPropagation()。
2、 在父元素事件函數(shù)中阻止事件冒泡
復(fù)制代碼 代碼如下:
$(function(){
$("#green").click(function(event){
alert("green click");
});
$("#red").click(function(event){
if(event.target == this)
{
alert("red click");
}
});
});
通過if(event.target== this)判斷點擊的目標(biāo)元素是不是red元素本身,如果不是red本身而是它的子元素green元素,則不會執(zhí)行if內(nèi)的代碼。
3、 阻止事件追加
以上的方法只能阻止事件冒泡(也就是父級元素的同類型事件),但不能阻止事件追加(同一元素的同類型事件)。
復(fù)制代碼 代碼如下:
$(function(){
$("#green").click(function(event){
event.stopImmediatePropagation();
alert("green click");
});
$("#green").click(function(){
alert("green click2");
});
});
event.stopImmediatePropagation()不但可以阻止green click2事件,同時也阻止事件冒泡。
相關(guān)文章
jquery實現(xiàn)垂直手風(fēng)琴導(dǎo)航欄
這篇文章主要為大家詳細(xì)介紹了jquery實現(xiàn)垂直手風(fēng)琴導(dǎo)航欄,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-02-02
Jquery與Bootstrap實現(xiàn)后臺管理頁面增刪改查功能示例
本篇文章主要介紹了Jquery與Bootstrap實現(xiàn)后臺管理頁面增刪改查功能示例,具有一定的參考價值,有興趣的可以了解一下。2017-01-01
15款優(yōu)秀的jQuery導(dǎo)航菜單插件分享
這篇文章收集了15款優(yōu)秀的jQuery導(dǎo)航菜單插件分享給大家。jQuery 是一個非常優(yōu)秀的 JavaScript 框架,使用簡單靈活,同時還有許多成熟的插件可供選擇,jQuery 讓網(wǎng)站有更好的可用性和用戶體驗,給訪問者對網(wǎng)站留下非常好的印象。2011-07-07

