0

我有一个 JQuery 数据表,其中一个列标题中有一个复选框:

<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
            },
            ...
        ]
    });

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

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

有任何想法吗?

4

1 回答 1

1

初始化数据表后尝试添加此脚本,看看?

var table = $("#vehTbl").dataTable(
{
    ...
    "aoColumns":
    [
        ...
        {
            "mDataProp": "SomeName",
            "fnRender": somefunction,
            "bUseRendered": false
        },
        ...
    ]
});
// add in this
$('input[type=checkbox]').click(function(event){event.stopPropagation()});
于 2013-07-01T04:40:13.007 回答