2017-10-09 63 views
0

我有以下的jQuery:jQuery的滾動自動完成 - 檢測底部

$("#input-name").autocomplete({ 
         source: function(request, response) { 
          if (!names.length){ 
           names = [NoResultsLabel]; 
          } 
          response(names); 
         }, 
         select: function (event, ui) { 
          if (ui.item.label === NoResultsLabel) { 
           event.preventDefault(); 
          } 
          for(var i=0;i<data.schools.length;i++){ 
           if(ui.item.label == names[i]){ 
            document.getElementById('filter[id]').value = ids[i]; 
            i = data.schools.length; 
           } 
          } 
         }, 
         focus: function (event, ui) { 
          if (ui.item.label === NoResultsLabel) { 
           event.preventDefault(); 
          } 
         } 
        }); 

我加入這個CSS,使其滾動:

<style> 
    .ui-autocomplete { 
     max-height: 100px; 
     overflow-y: auto; 
     overflow-x: hidden; 
    } 
    .ui-state-focus { 
     font-weight: normal; 
    } 
</style> 

,我想,當用戶滾動至底部檢測併發起一個Ajax請求,因爲有太多的行匹配相同的名稱(即時通過他們的名字搜索學校和選擇即時通訊返回核心申請ID

我試過這個

jQuery(function($) { 
      $('.ui-autocomplete').on('scroll', function() { 
       if($(this).scrollTop() + $(this).innerHeight() >= $(this)[0].scrollHeight) { 
        requests++; 
        getSchools(); 
       } 
      }) 
     }); 

,但它不工作

回答

0

我發現了什麼是錯誤的,它是在選擇,我發現這workaraound

$("selector").autocomplete("widget").scroll(function(){ 
        ... 
       }); 

但撥打自動完成已初始化

後纔此功能