如何使用滚动加载自动完成数据

时间:2014-07-09 17:18:08

标签: javascript php jquery autocomplete

我创建了jquery自动完成搜索。我必须在自动完成下拉列表中加载超过1000条记录。我想在用户向下滚动下一条记录后第一次滚动10条记录进行更改,请在此建议我/

1 个答案:

答案 0 :(得分:0)

我担心我无法为您编写完整的代码,因为SO不是让人们为您的代码工作的地方。

但是,我一定会告诉你一些步骤,你将能够实现它。

  1. PHP返回的所有条目加载/存储在变量中。

  2. 然后,您需要绑定自动完成下拉列表必须刷新的事件以加载下10个条目。例如,它可能是Down箭头keydown事件。

  3. 此绑定事件必须检查focus元素是否为第10个条目。维护一个变量来存储焦点元素的索引,该变量将在UpDown箭头keydown上更改。

  4. 然后,如果您的focus元素是第10个元素而用户会按Down键,那么您应该触发自动完成search事件。

  5. <强> 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;
        }
    });
    

    这只是一个小样本,只是为了显示。您需要对其进行大量更改并添加更多内容才能获得所需内容。