2014-07-09 53 views
1

我已經創建了jquery自動完成搜索。我必須在自動填充下拉列表中加載超過1000條記錄。我想讓它改變爲第一次滾動10條記錄,一旦用戶向下滾動下一條記錄就會出現,請對我有所幫助/如何使用滾動加載自動完成數據

+0

看看這裏:http://jqueryui.com/autocomplete/#maxheight – j809

+0

@ j809:我已經把最大高度。但我想要的只是首先加載10條記錄。一旦向下滾動就開始加載其他記錄。那種分頁 – user3786234

+0

您是否嘗試過我的回答?工作? – j809

回答

0

恐怕我無法爲你編寫整個代碼,因爲SO不是讓人們爲你的代碼工作的地方。

但是,我一定會告訴你一些你可以實現的步驟。

  1. 加載/存儲您的PHP在一個變量中返回的所有條目。

  2. 然後,您需要綁定自動完成下拉必須刷新的事件才能加載下10個條目。例如,它可能是Down箭頭​​事件。

  3. 此綁定事件必須檢查焦點元素是否爲第10個條目。保留一個變量來存儲聚焦元素的索引,該變量將在UpDown箭頭​​上更改。

  4. 然後,如果您的焦點元素是第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; 
    } 
}); 

這僅僅是一個小樣本只是爲了顯示。您需要對其進行很多更改並添加更多以獲得您想要的。