Javascript 数据表:Can';t在搜索后与行交互
我启动了一个datatable插件,如下所示: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,
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
});
谢谢我也来了,谢谢!我也是这么想的。