2014-01-20 33 views
1

我有一個Datatable,它使用AJAX從我的服務器獲取數據。.click()不適用於加載ajax的內容

此代碼添加數據到DataTable,並增加了一些按鈕,將其

   var jsdata = JSON.parse(data); 
       for (var i = 0; i < jsdata.length; i++) { 
        var actions = 
          '<div class="btn-group">' + 
           '<button class="btn btn-default btn-xs" type="button" data-button=\'{"func": "func1"}\' data-process_id="' + jsdata[i][0] + '"><i class="icon-remove"></i> </button>' + 
          '</div>'; 
        jsdata[i].push(actions); 
       } 

我也有這樣的代碼應該搶在創建按鈕的點擊(通過上面的腳本)

$('button').click(function() { 
    alert('test'); 
}); 

不幸的是,函數沒有被調用。 如果我直接放置按鈕(沒有AJAX請求),它工作正常。

我該如何解決這個問題?

+2

你要找的事件委託的事件處理程序。 – SLaks

+0

[事件代表團](http://learn.jquery.com/events/event-delegation/) –

+0

謝謝Slaks :) – Michael

回答

4

連接使用on

$(document).on("click", "button",function() { 
    alert('test'); 
}); 
+1

我同意這個答案,但我想指出,你也可以使用另一個家長委託,而不僅僅是文件。例如,可以使用從不動態替換的第一個父DIV,而不是文檔作爲從中委派事件的父代。 –