如何定义启动jQuery Mobile listview搜索的最小字符长度

如何定义启动jQuery Mobile listview搜索的最小字符长度,listview,jquery-mobile,Listview,Jquery Mobile,我有一个非常大(超过1000条记录)的listview,每次我在搜索字段中键入内容时,都会启动listview过滤过程,尤其是在键入第一个字符时,速度非常慢。但是,在jQuery Mobile中有没有快速定义最小启动过滤过程长度的方法?是的,您可以使用类似以下内容定义自己的搜索filterCallback函数: yourFilterFunction = function( text, searchValue ){ if (searchValue.length < 3) // autom

我有一个非常大(超过1000条记录)的listview,每次我在搜索字段中键入内容时,都会启动listview过滤过程,尤其是在键入第一个字符时,速度非常慢。但是,在jQuery Mobile中有没有快速定义最小启动过滤过程长度的方法?

是的,您可以使用类似以下内容定义自己的搜索
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);
yourFilterFunction=函数(文本,搜索值){
if(searchValue.length<3)//自动忽略小于3的搜索项
{
返回0;
}
返回text.toLowerCase().indexOf(searchValue)=-1;
};
$(“#mylist”).listview('option'、'filterCallback',yourFilterFunction);
当搜索项小于3时,
filterCallback
函数返回0。这将防止它在整个列表项集合上迭代

如果这不适合您,我建议您使用自己的(支持ajax的?)搜索过滤器

此处的文档:


希望这有帮助

尽管这给出了所需的外观,但它仍将迭代整个集合。第5810行:.bind(“keyup change”,function(){…调用filterCallback的代码在keyup或change上执行。此外,回调本身包含在for循环中,该循环迭代所有LI项。