Javascript DataTables/TableTools-单击某一行时,是否可以获得所选行的准确列表?

Javascript DataTables/TableTools-单击某一行时,是否可以获得所选行的准确列表?,javascript,jquery,events,datatables,tabletools,Javascript,Jquery,Events,Datatables,Tabletools,我正在使用DataTables和TableTools开发管理应用程序,希望能够在选择DataTable中的行时实时启用/禁用元素(例如按钮)。其目的是根据用户选择的项目以及其他因素来确定呈现给用户的管理选项,并让应用程序响应该决定 我的问题是在选择行之前调用了行的“单击”回调,因此尝试在回调中调用TableTools fnGetSelected函数会导致错误的数据。下面是一个例子,说明了我的意思: HTML: 第1栏 第2栏 Javascript: var dtColumns = [

我正在使用DataTables和TableTools开发管理应用程序,希望能够在选择DataTable中的行时实时启用/禁用元素(例如按钮)。其目的是根据用户选择的项目以及其他因素来确定呈现给用户的管理选项,并让应用程序响应该决定

我的问题是在选择行之前调用了行的“单击”回调,因此尝试在回调中调用TableTools fnGetSelected函数会导致错误的数据。下面是一个例子,说明了我的意思:

HTML:


第1栏
第2栏
Javascript:

var dtColumns = [
    [ "title", "Column Number 1" ], 
    [ "title", "Column Number 2" ]
]

var dtData = [
    ["Some Data", "More Data"],
    ["Some Data", "More Data"],
    ["Some Data", "More Data"],
    ["Some Data", "More Data"],
    ["Some Data", "More Data"]
]

$(document).ready(function() {
    $("#my-table").dataTable( {
        dom: 'T<"clear">lRrtip',
        tableTools: {
            "sRowSelect": "os",
            "aButtons": [{"sExtends": "select_none", "sButtonText": "Clear     Selection"}]
        },
        "data": dtData,
        "columns": dtColumns,
        fnRowCallback : function(row, data, index, indexFull) {
            $(row).on('click', function(e) {
                var ttInstance = TableTools.fnGetInstance("my-table")
                alert(ttInstance.fnGetSelected().length + " items selected")
            })
        }
    })
})
var dtColumns=[
[“标题”,“第1栏”],
[“标题”,“第2栏”]
]
变量dtData=[
[“一些数据”,“更多数据”],
[“一些数据”,“更多数据”],
[“一些数据”,“更多数据”],
[“一些数据”,“更多数据”],
[“一些数据”,“更多数据”]
]
$(文档).ready(函数(){
$(“#我的表”)。数据表({
dom:'TlRrtip',
表格工具:{
“sRowSelect”:“操作系统”,
“aButtons”:[{“sExtends”:“select_none”,“sbuttonext”:“Clear Selection”}]
},
“数据”:dtData,
“列”:dtColumns,
fnRowCallback:函数(行、数据、索引、indexFull){
$(行)。在('单击')上,函数(e){
var ttInstance=tablettools.fnGetInstance(“我的表”)
警报(ttInstance.fGetSelected().length+“选定项”)
})
}
})
})
请注意,单击某一行时,会在表指示该行已被选中之前打开警报,“选定”行数表示单击之前选定的行,而不是单击之后选定的行

我考虑根据单击的项目、单击方式(即ctrl-click、shift-click)以及单击时是否已选中来手动确定选定行的列表。对于简单的用例来说,这起初似乎很容易,但当我开始深入兔子洞时,我意识到这比我想要处理的要复杂得多


是否有任何方法可以在不重新实现TableTools选择功能的情况下完成我想做的事情?如果没有,我可能会放弃使用“os”风格的行选择,并做一些事情,使手动确定所选行更容易。

可能是这样的吗

$(document).ready(function() {
    $("#my-table").dataTable( {
        dom: 'T<"clear">lRrtip',
        tableTools: {
            "sRowSelect": "os",
            "aButtons": [{"sExtends": "select_none", "sButtonText": "Clear Selection"}],
            fnRowSelected: function(nodes) {
                var ttInstance = TableTools.fnGetInstance("my-table");
                alert(ttInstance.fnGetSelected().length + " items selected");
            }
        },
        "data": dtData,
        "columns": dtColumns
    })
});
$(文档).ready(函数(){
$(“#我的表”)。数据表({
dom:'TlRrtip',
表格工具:{
“sRowSelect”:“操作系统”,
“aButtons”:[{“sExtends”:“select_none”,“sbuttonext”:“Clear Selection”}],
fnRowSelected:函数(节点){
var ttInstance=TableTools.fGetInstance(“我的表”);
警报(ttInstance.fGetSelected().length+“选定项”);
}
},
“数据”:dtData,
“列”:dtColumns
})
});
使用
fnRowSelected


Wow。我错过了那件事,感到很尴尬。我会责怪谷歌只返回有关点击回调的链接,并假装我在浏览文档时没有完全过目:)谢谢你为我指明了正确的方向。
$(document).ready(function() {
    $("#my-table").dataTable( {
        dom: 'T<"clear">lRrtip',
        tableTools: {
            "sRowSelect": "os",
            "aButtons": [{"sExtends": "select_none", "sButtonText": "Clear Selection"}],
            fnRowSelected: function(nodes) {
                var ttInstance = TableTools.fnGetInstance("my-table");
                alert(ttInstance.fnGetSelected().length + " items selected");
            }
        },
        "data": dtData,
        "columns": dtColumns
    })
});