2013-04-24 60 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; 
 
'''

仅前五个列表项