2011-11-15 58 views
4

所以我動態呈現一段jQuery使用append方法,我想添加一個單擊事件,但由於某種原因點擊事件不工作,我知道解決方案可能簡單,但我是新來的jquery,並會感謝任何幫助...我知道函數內的代碼工作,因爲我測試它與一個靜態按鈕,它只是沒有與動態one.Thanks事先提供任何幫助,jquery按鈕沒有響應點擊方法

這裏是我的代碼

$(this).parent().parent().children("div").append("<p class='tryAgain'>Try Again</p>"); 

點擊功能碼,

$(".tryAgain").click(function() {......} 
+0

歡迎的jQuery。如果你喜歡關於點擊的更多信息,請點擊此處鏈接到類似的問題(http://stackoverflow.com/questions/2954932/difference-between-jquery-click-bind-live-delegate-and-trigger-functions- WIT)。請注意,使用最新的jQuery版本(1.7),所有事件綁定方法已融合爲一種方法來統一它們:'.on()' – roselan

回答

7

您在document.ready引發後添加到DOM的任何內容都需要使用.live.delegate以便爲新添加的元素添加事件處理函數。

例如:

$('.tryAgain').live("click", function() {...}); 

如果您正在使用jQuery 1.7+你應該使用.on

$(document).on("click", ".tryAgain", function(){ ... }); 
+0

http://api.jquery.com/live/ – Chris

+0

非常感謝!工作! – skevthedev

+1

+1表示參考$ .on! – Galled

1

用途:

$('.tryAgain').live('click', function() 
{ 
    .... 
}); 
0

還有就是用現場直播的替代,你可以在創建這樣的元素時添加處理程序:

$("<p>Try Again</p>", { 
    "class": "tryAgain", 
    click: function(){ 
    //YOUR CLICK HANDLER 
    } 
}).appendTo($(this).parent().parent().children("div")); 
0

我認爲當你創建新的p標籤這樣就可以把點擊事件右邊有:

$(this).parent().parent().children("div").append(
    $('<p>').addClass('tryAgain').click(function(){ 
     alert('test'); 
    }));