我创建了jquery自动完成搜索。我必须在自动完成下拉列表中加载超过1000条记录。我想在用户向下滚动下一条记录后第一次滚动10条记录进行更改,请在此建议我/
答案 0 :(得分:0)
我担心我无法为您编写完整的代码,因为SO不是让人们为您的代码工作的地方。
但是,我一定会告诉你一些步骤,你将能够实现它。
将PHP
返回的所有条目加载/存储在变量中。
然后,您需要绑定自动完成下拉列表必须刷新的事件以加载下10个条目。例如,它可能是Down
箭头keydown
事件。
此绑定事件必须检查focus元素是否为第10个条目。维护一个变量来存储焦点元素的索引,该变量将在Up
或Down
箭头keydown
上更改。
然后,如果您的focus元素是第10个元素而用户会按Down
键,那么您应该触发自动完成search
事件。
<强> JS 强>
var items[] = ... //your autocomplete items cached
var focused = 1; //maintain variable to store focused element
$(input).bind( "keydown", function( event ) { //bind keydown event
if ( event.keyCode == $.ui.keyCode.DOWN ) {
++focused;
if(focused==10){
$(input).autocomplete("option","source",//items from 1-10, 11-20,... changing for each page);
$(input).autocomplete("search",searchParam);//searchParam is input content, you can filter it to get last typed word
focused=1; //Reset focused element to first
}
}
else if ( event.keyCode == $.ui.keyCode.UP ) {
--focused;
}
});
这只是一个小样本,只是为了显示。您需要对其进行大量更改并添加更多内容才能获得所需内容。