2013-04-24 97 views
2

我想限制可見的列表視圖項目的數量爲5.airports變量是一個字符串結構爲jsonp。代碼的工作方式如下所示,但我無法弄清楚如何限制顯示在列表視圖中的項目數量。我需要限制這個數字,因爲機場變量包含數千個項目。謝謝你的幫助!jQuery listviewbeforefilter,限制列表視圖項目

$("#destinationListview").on("listviewbeforefilter", function (e, data) { 
    var $ul = $(this), 
     $input = $(data.input), 
     value = $input.val(), 
     html = ""; 
    $ul.html(""); 
    if (value && value.length > 3) { 
     $ul.html("<li></li>"); 
     $ul.listview("refresh"); 
     $.each(airports, function (i, val) { 
      html += "<li class='destination' id='" + val.code + "'>" + val.name + ", " + val.location + "</li>"; 
     }); 
     $ul.html(html); 
     $ul.listview("refresh"); 
     $ul.trigger("updatelayout"); 

     $(".destination").click(function() { 
      $(data.input).val($(this).attr("id")); 
      $("#destination").val($(this).attr("id")); 
      $("#destinationListview li").hide(); 
     }); 
    } 
}); 

回答

0

我猜機場是一個數組,所以我做了一個簡單的例子在這裏:http://jsfiddle.net/av94U/

你想要做什麼是分離出要在ul使用列表項。就像你說的,你只需要5可見,所以你應該從你的機場陣列提取它們,就像得到你想要在你的列表中顯示的五個機場:

var listItems = airports.length > 5 ? airports.slice(-5) : airports; 

然後在你$.each(airports, ...)使用listItems - 呼叫。

0

表明它會是這樣

'''javascript 
 
var listItems = airports.length > 5 ? airports.slice(0,5) : airports; 
 
'''

僅前五個列表項