下面是一個精簡的例子。在jQuery中執行.replaceWith()時,事件綁定不會被保留
請記住,.chat-reply類具有綁定到它的單擊事件處理程序。
的HTML(回覆按鈕):當有人點擊另一個按鈕將消息發送到服務器保存在數據庫
<div class="container">
<a href="#" class="btn small chat-reply">Reply</a>
</div>
這個jQuery函數被調用。這通過ajax完成並且成功完成。在上述阿賈克斯()成功()回調調用此函數:
$.ajax({
type : 'GET',
url : '/some_controller/some_method',
success : function(data) {
$('.container').replaceWith(data);
}
});
在成功回調的「數據」上面會取代整個 .container DIV包括孩子.chat回覆按鈕。在replaceWith()之後,click事件不再綁定到按鈕。從邏輯上講,我試圖讓最終用戶在時間軸上發佈消息,然後在時間軸中顯示該消息,而不需要刷新屏幕。
你代碼示例對我來說有點困惑。如果你不介意澄清一點,那會很棒。 – generalopinion 2012-02-14 03:37:14
Sry the block只是從舊的'live'指向'on',但Vigrond的例子是你如何做'開'。在您的回調中收到html之後附加事件幾乎會更好。 – 2012-02-14 05:17:23