Jquery阻止事件冒泡 event.stopPropagation
更新時間:2011年12月11日 22:53:40 作者:
幫朋友寫了一個小效果,單擊標簽后標簽變色并添加一個叉的圖片,點擊叉標簽恢復原樣,具體效果請點擊下面的result
描述: 防止事件冒泡到DOM樹上,也就是不觸發(fā)的任何前輩元素上的事件處理函數(shù)。
version added: 1.0
event.stopPropagation()
我們可以用 event.isPropagationStopped() 來確定這個方法是否(在那個事件對象上)調用過了。
這個方法對 trigger() 來自定義的事件同樣有效。
注意,這不會阻止同一個元素上的其它事件處理函數(shù)的運行。
Additional Notes:
自從.live()方法處理事件一旦傳播到文檔的頂部,live事件是不可能停止傳播的。同樣地,.delegate() 事件將始終傳播給其中包含的被委托元素;元素上的事件將在被委托事件被調用的時候執(zhí)行。
Example:
滅掉click事件的冒泡。
$("p").click(function(event){
event.stopPropagation();
// do something
});
東西并不難,主要是記錄下其中的阻止事件冒泡。
因為div添加了單擊事件,div內部的img也添加了單擊事件,所以當單擊img時會先觸發(fā)img上的單擊事件,再觸發(fā)div上的單擊事件,這就是事件冒泡。
在Jquery中我們可以很方便的阻止他。
如下
這樣一來單擊img就不再觸發(fā)div的單擊事件啦
$('div').click(function(){
var $div = $(this);
if($div.find('img').size() > 0){
return;
}else{
$div.css('backgroundColor','#e1f0f3');
$('<img src="http://chabaoo.cn/lovejjhao/341157/o_cha.jpg"/>').
appendTo($(this)).click(function(event){
$div.css('backgroundColor','#ffffff');
$(this).remove();
event.stopPropagation();
}).css('margin-left','10px');
}
});
version added: 1.0
event.stopPropagation()
我們可以用 event.isPropagationStopped() 來確定這個方法是否(在那個事件對象上)調用過了。
這個方法對 trigger() 來自定義的事件同樣有效。
注意,這不會阻止同一個元素上的其它事件處理函數(shù)的運行。
Additional Notes:
自從.live()方法處理事件一旦傳播到文檔的頂部,live事件是不可能停止傳播的。同樣地,.delegate() 事件將始終傳播給其中包含的被委托元素;元素上的事件將在被委托事件被調用的時候執(zhí)行。
Example:
滅掉click事件的冒泡。
復制代碼 代碼如下:
$("p").click(function(event){
event.stopPropagation();
// do something
});
東西并不難,主要是記錄下其中的阻止事件冒泡。
因為div添加了單擊事件,div內部的img也添加了單擊事件,所以當單擊img時會先觸發(fā)img上的單擊事件,再觸發(fā)div上的單擊事件,這就是事件冒泡。
在Jquery中我們可以很方便的阻止他。
如下
復制代碼 代碼如下:
event.stopPropagation();
這樣一來單擊img就不再觸發(fā)div的單擊事件啦
復制代碼 代碼如下:
$('div').click(function(){
var $div = $(this);
if($div.find('img').size() > 0){
return;
}else{
$div.css('backgroundColor','#e1f0f3');
$('<img src="http://chabaoo.cn/lovejjhao/341157/o_cha.jpg"/>').
appendTo($(this)).click(function(event){
$div.css('backgroundColor','#ffffff');
$(this).remove();
event.stopPropagation();
}).css('margin-left','10px');
}
});
您可能感興趣的文章:
- MySQL數(shù)據(jù)庫事務隔離級別介紹(Transaction Isolation Level)
- spring事物傳播propagation類別含義詳解
- spring事務Propagation及其實現(xiàn)原理詳解
- python實現(xiàn)BackPropagation算法
- JavaScript中使用stopPropagation函數(shù)停止事件傳播例子
- js中的preventDefault與stopPropagation詳解
- 關于event.cancelBubble和event.stopPropagation()的區(qū)別介紹
- 阻止JavaScript事件冒泡傳遞(cancelBubble 、stopPropagation)
- 淺談spring中isolation和propagation的用法
相關文章
jquery實現(xiàn)清新實用的網(wǎng)頁菜單效果
這篇文章主要介紹了jquery實現(xiàn)清新實用的網(wǎng)頁菜單效果,涉及jquery通過鼠標事件控制頁面元素的動態(tài)隱藏與顯示實現(xiàn)技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-08-086款經典實用的jQuery小插件及源碼(對話框/提示工具等等)
jQuery擁有豐富多彩的插件,這些插件可以幫助你簡化很多的開發(fā)過程,下面介紹的6款實用jQuery小插件及源碼,感興趣的朋友可以參考下,希望本文可以幫助到你2013-02-02JQuery中對Select的option項的添加、刪除、取值
jQuery獲取Select選擇的Text和Value及添加/刪除Select的Option項,在本文將為大家詳細介紹下具體的實現(xiàn),感興趣的朋友可以參考下2013-08-08基于jquery的用dl模擬實現(xiàn)可自定義樣式的SELECT下拉列表(已封裝)
通過dl模擬實現(xiàn)SELECT下拉列表. 其實這是項目中要常用到的一個效果, 于是, 在之前寫的基礎上封裝成了一個插件. 可自定義樣式, 可防止用戶本意劃過時觸發(fā)事件.2010-11-11通過JQuery,JQueryUI和Jsplumb實現(xiàn)拖拽模塊
這篇文章主要介紹了通過JQuery,JQueryUI和Jsplumb實現(xiàn)拖拽模塊,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,,需要的朋友可以參考下2019-06-06