当我在jquery数据表中显示每页25条记录时,单击事件不起作用

时间:2016-02-29 14:38:26

标签: javascript jquery datatable

我的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,
    });

这个问题的正确解决方案是什么?

1 个答案:

答案 0 :(得分:1)

  

<强>原因

DataTables出于各种原因从DOM中删除不可见的行,因此当您附加事件处理程序时,它仅适用于当前可见的元素。

  

<强>解

您需要通过在on()调用中提供选择器作为第二个参数来使用事件委派。

$('#tabletest tbody').on('click', 'tr', function(){
   // ... skipped ...
});
  

<强>链接

有关详细信息,请参阅jQuery DataTables – Why click event handler does not work