jQuery listviewbeforefilter,限制listview项目

时间:2013-04-24 03:35:23

标签: jquery listview

我试图将可见的listview项数限制为5. Airports变量是一个结构为jsonp的字符串。代码工作如下所示,但我无法弄清楚如何限制列表视图中显示的项目数。我需要限制这个数字,因为Airports变量包含数千个项目。谢谢你的帮助!

$( "#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();
        });
    }
});

2 个答案:

答案 0 :(得分:0)

我猜测机场是一个阵列,所以我在这里做了一个简单的例子:http://jsfiddle.net/av94U/

您要做的是将您要在ul中使用的列表项分开。如你所说,你只想要5个可见,所以你应该通过从你的机场阵列中提取它们来获得你想要在列表中显示的五个机场,例如:

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

然后使用listItems中的$.each( airports, ...) - 来电。

答案 1 :(得分:0)

要仅显示前五个列表项,就像这样

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