jquery - 数据表,如何在表的所有行上绑定(bind)事件

标签 jquery datatables

我的数据表工作正常,除了我试图在每一行上添加一个 dblclick 功能(该功能部分有效)之外。

所以,这是我的代码:

oTable = $('#example').dataTable({
    "aaSorting": [[ 1, "desc" ]],
    "bJQueryUI": true,
    "sPaginationType": "full_numbers"
});

/* Add a click handler to the rows */

//This highlights the row selected
$("#example tbody").click(function(event) {
        $(oTable.fnSettings().aoData).each(function (){
                $(this.nTr).removeClass('row_selected');
        });
        $(event.target.parentNode).addClass('row_selected');
});

//this attaches a dblclick event on the row
$("#example tr").dblclick(function() {
        var iPos = oTable.fnGetPosition( this );
        var aData = oTable.fnGetData( iPos );
        var iId = aData[1];
        $('#edit'+iId).click(); //clicks a button on the first cell
});

行的突出显示对于表的所有行都可以,但是 dblclick 仅适用于最初在第一页中呈现的行。当我对数据进行排序/搜索并且显示的数据发生变化时,dblclick 事件对于那些未显示在第一页中的行不起作用。

谁能帮忙解开这个谜团吗? 谢谢

最佳答案

第一个答案近乎完美,但必须进行一些小调整才能阻止其工作。

如 jquery apidoc on() 中所示您必须添加 [, 选择器],就像我在下面使用 "tr"

所做的那样
$("#example").on("dblclick", "tr", function() {
        var iPos = oTable.fnGetPosition( this );
        var aData = oTable.fnGetData( iPos );
        var iId = aData[1];
        $('#edit'+iId).click(); //clicks a button on the first cell
});

关于jquery - 数据表,如何在表的所有行上绑定(bind)事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15293094/

相关文章:

javascript - 加载时打开选项卡(有序列表)?

javascript - 我现在如何保存计数器值或 "Textbox"值,以便刷新后它将保持在那里

javascript - DataTables 列、columnDefs 和 rowCallback HTML5 初始化

javascript - 允许为显示的每个数据表选择一次行

javascript - 动态更新选择中的选项

jquery - Socket.io 函数仅工作一次,然后停止

javascript - Jquery 事件,简单的点击,如何以及为什么?

javascript - 数据表中单个下拉列表中的多列过滤

javascript - 获取 dataTables 和 twitter bootstrap 工作时出现问题

javascript - 如何在数据表中使用列重新排序事件?