2014-01-20 32 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,而不是文档作为从中委派事件的父代。 –