簡體   English   中英

使用jquery的onclick處理程序

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM