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

标签 javascript jquery 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,
    });

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

最佳答案

CAUSE

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

SOLUTION

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

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

LINKS

参见jQuery DataTables – Why click event handler does not work了解更多信息。

关于javascript - 当我在 jquery 数据表中每页显示 25 条记录时,单击事件不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35702301/

相关文章:

javascript - 使用 setState 设置 react 页面的所有状态

javascript - 非字母数字字符串的 Number.parseInt 给出 typeof 'number'

javascript - 如何在自动建议文本框中获取所选项目(字符串)的第一个单词(Jquery,c#)

c# - 在c#中向数据表添加行

javascript - 尝试从表单输入 JS 生成变量时未捕获 RangeError 超出最大调用堆栈

javascript - 简单的 JavaScript 棋盘

javascript - 具有html的js对象的访问值

javascript - JQuery AjaxStart/Stop 实现延迟功能?

jQuery 数据表自定义按钮

c# - 使用 DataAdapter 填充表