Javascript 数据表:Can';t在搜索后与行交互

Javascript 数据表:Can';t在搜索后与行交互,javascript,jquery,datatables,Javascript,Jquery,Datatables,我启动了一个datatable插件,如下所示: var table= $("#mytable").DataTable({ ajax: "list.json", columns: [ {"data": "name"}, {"data": "location"}, {"data": "date"} ], searchCols: [ {"search": "John"}, null,

我启动了一个datatable插件,如下所示:

var table= $("#mytable").DataTable({

    ajax: "list.json",
    columns: [
        {"data": "name"},
        {"data": "location"},
        {"data": "date"}
    ],
    searchCols: [
        {"search": "John"},
        null,
        null
    ]
});
上面的示例还对第一列进行了预搜索。现在,当插件启动时,我想与它的一些行进行交互:

fnInitComplete: function() {
   $(this).find("tr").click( ... );
}

一切正常,直到我尝试与在表render
{“search”:“John”}
上搜索过的行交互,然后再次搜索该行(例如,我将搜索查询更改为“Richard”,并尝试单击其中一行)。有什么想法吗?

您需要使用委托事件处理程序,因为jQuery DataTables会在每个表绘制上操作DOM

例如:

var table= $("#mytable").DataTable({   
    ajax: "list.json",
    columns: [
        {"data": "name"},
        {"data": "location"},
        {"data": "date"}
    ],
    searchCols: [
        {"search": "John"},
        null,
        null
    ]
});

$("#mytable").on("click", "tr", function(){
   // Handle click event
});

您需要使用委派的事件处理程序,因为jQuery DataTables在每个表绘制上操作DOM

例如:

var table= $("#mytable").DataTable({   
    ajax: "list.json",
    columns: [
        {"data": "name"},
        {"data": "location"},
        {"data": "date"}
    ],
    searchCols: [
        {"search": "John"},
        null,
        null
    ]
});

$("#mytable").on("click", "tr", function(){
   // Handle click event
});

谢谢我也来了,谢谢!我也是这么想的。