我的datatable jQuery插件有问题。当我的数据表加载时,默认情况下,页面前值为10,但之后我更改为每页25条记录。因此,在第10条记录之后,单击事件不起作用。
我将此代码用于点击事件:
function driverClickable(){ $('#tabletest tbody tr').click(function() {
//setDriverEvents();
var data = $(this).html();
//console.log(data);
var find = '<td>';
var find2 = '</td>';
var find3 = '<td class="sorting_1">';
var re = new RegExp(find, 'g');
var re2 = new RegExp(find2, 'g');
var re3 = new RegExp(find3, 'g');
data = data.replace(re, ',');
data = data.replace(re2, '');
data = data.replace(re3, '');
ViewDriver(data); }); }
function setDriverEvents(){ driverClickable();
$('#tabletest').on( 'page.dt', function () {
setTimeout(function(){
driverClickable();
}, 500); });}
这是我将数据添加到数据表中的代码
tableDriverData = $('#tabletest').dataTable({
"data": driverData,
});
这个问题的正确解决方案是什么?
答案 0 :(得分:1)
<强>原因强>
DataTables出于各种原因从DOM中删除不可见的行,因此当您附加事件处理程序时,它仅适用于当前可见的元素。
<强>解强>
您需要通过在on()调用中提供选择器作为第二个参数来使用事件委派。
$('#tabletest tbody').on('click', 'tr', function(){
// ... skipped ...
});
<强>链接强>
有关详细信息,请参阅jQuery DataTables – Why click event handler does not work。