2012-10-25 56 views
0

我想單擊圖像時附加一個div。這工作正常,它看起來非常好。但是現在我必須按鈕來確認是否要刪除一個項目。我試圖在'是'按鈕上做一個clickevent。似乎沒有發生。我怎麼解決這個問題?jQuery單擊不能在附加的div上工作

$(".trashbinPage img").one('click', function(){ 
    $('#deletePage').closest('tr').after('<div class="deleteMessage"><p>Weet u het zeker?</p></div>'); 
    $('.deleteMessage').append('<div id="wrapButtons"><div class="trashYes">Ja</div><div class="trashNo">Nee</div></div>'); 
}); 

$(".trashYes").click(function(){ 
    alert('hoi'); 
}); 
+0

請檢查你的代碼 –

回答

0

Typo? .one()應該是.on()

+1

這是不正確,一個是有效的jQuery方法:http://api.jquery.com/one/ –

+0

.one()是一次對垃圾桶執行單擊操作。否則,您可以無休止地追加deletemessages – Tamara

4

註冊您.trashYeson

$('.deleteMessage').on('click', '.trashYes', function() { 
    ... 
}); 

更新

jQuery < 1.7版本中,你應該使用delegate功能:

更新2

Rory在我的代碼中指出了一個問題,所以我更新了答案。

+0

+1因爲是唯一一個認識到問題的人是第二個點擊處理程序(並且很難擊敗我) – RobMasters

+0

這對於加載後附加的元素不起作用,您尚未委派事件。 –

+0

@RoryMcCrossan它將用於'jQuery' 1.7和以上?請參閱[文檔](http://api.jquery.com/on/)。 –

1

將事件追加到對象後,必須將其綁定到對象。或者使用live()或者delegate()來代替綁定。 網上應該有很多關於綁定,生活和委託的區別的文章。

1

元素在頁面加載後追加,這是click()連接事件。因此,你需要使用on與委託來處理該事件,如下所示:

$(".deleteMessage").on('click', '.trashYes', function(){ 
    alert('hoi'); 
}); 
相關問題