取消绑定和重新绑定DataTables搜索事件结果为空sSearch
这件事让我有点为难。我使用的是jQuery DataTables 1.10.6,我希望这样,当用户停止键入时(比如可能在950毫秒之后?),就会执行搜索。我有点让它工作,但由于我使用服务器端处理,sSearch(搜索参数)返回null 我猜这和解除绑定和重新绑定有关,但我不知道如何使sSearch正确发送取消绑定和重新绑定DataTables搜索事件结果为空sSearch,datatables,Datatables,这件事让我有点为难。我使用的是jQuery DataTables 1.10.6,我希望这样,当用户停止键入时(比如可能在950毫秒之后?),就会执行搜索。我有点让它工作,但由于我使用服务器端处理,sSearch(搜索参数)返回null 我猜这和解除绑定和重新绑定有关,但我不知道如何使sSearch正确发送 var delay = function () { var timer = 0; return function (callback, ms) { clearT
var delay = function () {
var timer = 0;
return function (callback, ms) {
clearTimeout(timer);
timer = setTimeout(callback, ms);
}
})();
$("div.dataTables_filter input").unbind();
$("div.dataTables_filter input").bind("keyup", function () {
alert(this.value);
delay(function () {
$("#MyTable").dataTable().fnFilter(this.value);}, 1000);
}
DataTables有一个se delay选项,您可以检查它我发现了一个不推荐使用的插件,它是一个键debounce delay: 尽管有人说这不适用于1.10+,但有人评论说,行更改将允许它在1.10+中工作。因此,下面这句话:
anControl.unbind('keyup search input').bind('keyup search input', function() {
…将替换为:
anControl.off('keyup search input').on('keyup search input', function() {
我还可以在调用参数中设置过滤延迟计时器。工作起来很有魅力。据我所知,searchDelay只有在你想节流而不是去盎司时才有用——这意味着searchDelay只会每n毫秒执行一次平局,不管你提供什么参数。我在寻找去Bouncing,延迟或限制在一定时间后调用draw(比如在一定时间后没有按键)。