JQuery DataTables - 防止对可排序列进行排序

时间:2013-07-01 04:33:23

标签: jquery sorting jquery-plugins datatables

我有一个JQuery Datatable,其中一个列标题中有一个复选框:

<table id="vehTbl" class="table table-striped table-bordered">
  <thead>
    <tr>
        ...
        <th>
            <input type="checkbox" id="someId" onchange="TickAllBoxes()" />
            Publish
        </th>
    </tr>
  </thead>
</table>

我的数据表初始化如下:

var table = $("#vehTbl").dataTable(
    {
        ...
        "aoColumns":
        [
            ...
            {
                "mDataProp": "SomeName",
                "fnRender": somefunction,
                "bUseRendered": false
            },
            ...
        ]
    });

所以这个专栏是可以排序的。现在我需要防止在单击复选框时触发sort事件(并且因此触发TickAllBoxes)。否则,排序应该在列上起作用。

可能的工作原理是将处理程序绑定到表的“sort”事件,并在调用者是“someId”复选框时阻止默认值。不过,我没有成功。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

尝试在初始化dataTable后添加此脚本,并参见?

var table = $("#vehTbl").dataTable(
{
    ...
    "aoColumns":
    [
        ...
        {
            "mDataProp": "SomeName",
            "fnRender": somefunction,
            "bUseRendered": false
        },
        ...
    ]
});
// add in this
$('input[type=checkbox]').click(function(event){event.stopPropagation()});