我有一个非常庞大的(超过1000条记录)listview,每次我输入搜索字段都会触发listview过滤器进程并且它非常慢,特别是在输入第一个字符时。然而,在jQuery Mobile中定义最小长度以解决过滤过程的任何快速方法都可用吗?
答案 0 :(得分:1)
是的,您可以使用以下内容定义自己的搜索filterCallback
函数:
yourFilterFunction = function( text, searchValue ){
if (searchValue.length < 3) // automatically omit search terms less than 3
{
return 0;
}
return text.toLowerCase().indexOf( searchValue ) === -1;
};
$("#mylist").listview('option', 'filterCallback', yourFilterFunction);
当搜索词小于3时,filterCallback
函数返回 0 。这样可以防止它迭代整个列表项集合。
如果这不适合你,我建议你自己滚动(启用ajax?)搜索过滤器。
此处的文档:http://jquerymobile.com/test/docs/lists/docs-lists.html
希望这有帮助!