jQuery DataTables 鼠标点击搜索

Posted

技术标签:

【中文标题】jQuery DataTables 鼠标点击搜索【英文标题】:jQuery DataTables Search on mouseclick 【发布时间】:2012-07-05 23:27:54 【问题描述】:

我正在研究 jQuery 数据表。我已经为搜索文本框实现了预测搜索功能,这样当用户开始输入时,它会显示 10 个最近搜索过的项目/字符串的列表。现在这里的问题是,如果我使用键盘选择任何列表项,过滤会立即发生,即在每次按键时,而当我用鼠标单击选择列表项时,它不会过滤表格。我必须按 Enter 才能过滤表格。我希望能够在按键和鼠标点击时过滤表格。这如何在数据表中实现?任何建议都会有很大帮助!

【问题讨论】:

【参考方案1】:

你可以这样做;

首先,您需要在单击时设置一个 JQuery 事件,因此在下拉列表中为所有选项提供一个类,例如 recentItems。那你就可以这样写了;

$(document).ready(function() 

   $('.recentItems').click(function()
           var filterString = $('.dataTables_filter :input').val();
           oTable.fnFilter(filterString);
   );

);

这假设你给你的数据表一个变量名 oTable。

【讨论】:

使用多个事件 .. keypressclick :) @Garbage,数据表已经对 keyup 进行了过滤。这是自定义输入没有触发过滤器的问题。 是的,它是自定义输入,那么它将如何识别keyup 事件?如果我们使用自定义输入,那么我们应该绑定多个事件 [如果我们真的需要它] :) 输入字段不是自定义的,是数据表插件的内置部分。他提示的下拉建议是自定义的。当用户单击一个时,它会填充标准输入框,但不会触发过滤器。 NP,如果这对您有用,请标记为正确答案。【参考方案2】:
$('#filter-data-button').click(function()
    oTable.search('your value').draw();
);

【讨论】:

以上是关于jQuery DataTables 鼠标点击搜索的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 jQuery DataTables 插件在特定列中搜索?

排序和搜索的jQuery Datatables间歇性问题

jquery plugins —— datatables 搜索后汇总

jQuery 插件 DataTables:如何突出显示当前搜索文本?

jQuery DataTables:隐藏搜索栏

JQuery Datatables 在输入中搜索并选择