[英]Onclick handlers with jquery
我有以下代碼
<div class="test-123">
<p>Some Text</p>
<div class="delete"></div>
<div class="edit"></div>
</div>
問題是我必須有三個元素的onclick jquery處理程序(test-123,刪除和編輯)。 我面臨以下問題。 當我點擊刪除時,test-123的onclick處理程序也會在刪除的onclick處理程序被執行后執行。
有辦法以某種方式阻止這種情況嗎?
您正在尋找stopPropogation
event.stopPropagation()
http://api.jquery.com/event.stopPropagation/
$(function(){
$(".test-123").click(function(){
alert("click on div");
});
$(".delete,.edit").click(function(e){
e.stopPropagation()
alert("click on Links");
});
});
注釋掉e.stopPropagation
行,看看會發生什么。
工作演示: http : //jsfiddle.net/Pjn3s/2/
請參閱jQuery的event.stopPropagation
。 這將阻止其他偵聽器觸發。 例如,
$("p").click(function(event){
event.stopPropagation();
// do something
});
正如@paislee所說,這是一個傳播問題。 你是否使用jQuery方法“live”,如:
$('selector').live('click', function(){
//The actions
});
我認為您應該檢查方法“委托”的使用,即“強制”您設置頂部父級,以便必須將哪些元素應用於閉包。 它比任何方式都更安全(甚至點擊事件)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.