将更改事件绑定到每个DataTables行中的复选框

时间:2016-08-11 14:54:41

标签: jquery events checkbox datatables

我为DataTables中的每一行添加了一个复选框。加载表数据时,我将change事件绑定到每个复选框,如下所示:

fnInitComplete: function(oSettings, json) {

      $("input[type='checkbox']").on("change", function() {

            // checking if any checkbox is checked

      });
}

问题是只为第一页添加了更改事件。如果我导航到其他页面并单击任何复选框,则不会触发任何事件。它仅在我刷新页面时才有效。与Show entries相同。什么是处理这个问题的聪明方法?

Table data

2 个答案:

答案 0 :(得分:4)

尝试使用委托事件:

$("#table_id").on('change',"input[type='checkbox']",function(e){
    //your code 
});

当一个'change'事件来自作为其后代的input[type='checkbox']时,这告诉表运行指定的函数。

您不需要在表初始化中注册此处理程序,您可以在文档准备好之后再执行此操作。

More about delegated events

答案 1 :(得分:1)

您可以将代码放在.on( 'page.dt', function () { // do something})检查the link以获取有关此内容的更多说明,或者您可以使用以下代码放置此事件。

$(function(){$("input[type='checkbox']").on("change", function() {

            // checking if any checkbox is checked

      });})