【问题标题】:Listview not rendering right on the second time the page is loadedListview 在第二次加载页面时无法正确呈现
【发布时间】:2011-12-14 04:08:35
【问题描述】:

我在使用 JqueryMobile 时遇到了一些问题。我加载一个页面并动态创建 Listview。第一次加载页面时,列表呈现良好,当我返回上一页并单击同一链接时,列表视图不会呈现为列表视图,而是呈现为链接。我在同一个文档上有多个页面,所以我通过 id 引用这些页面。代码如下。

列表的构建位置。

    function getDays(mon){
        var total = 0;
        $("#h1").text(sites);
        $("#perDay").empty();
        $.getJSON('/cf/cfc/statistics.cfc?method=PagesPerDay', { site: sites , months : mon}, function(qPress) {
            $.each(qPress, function(i, item) {
                total = total + item.pages;
                $("#perDay").append('<li id="' + item.dayname +'"><a href="javascript:void(0);" onClick="getDays();">' + item.dayname + '<span class="ui-li-count">' + item.pages + '</span></a></li>');
            }); 
            $("#perDay").append('<li data-theme="b" class="ui-li ui-li-static ui-body-c ui-li-has-count">Total' + '<span class="ui-li-count">' + total + '</span></li>');               
            ChangePage("#pageDays", 'pop', sites);
        });
    }

html

    <div data-role="page" id="pageDays">
        <div data-role="header" data-position="inline">
            <a href="#razzberry" data-icon="back" data-theme="b" data-rel="back">Back</a>
            <h1 id="h1"></h1>
        </div>

        <div data-role="content"> 
            <h4 style="text-align:center;">Pages Viewed Per Day</h4>
            <ul data-role="listview" id="perDay"></ul>  
        </div>  
    </div><!-- /page -->    

我尝试将$("#perMonth").listview("refresh"); 放在循环之后,但我得到了 Uncaught 不能在初始化之前调用 listview 上的方法;试图调用方法“刷新”

我正在使用 jQuery Mobile 1.0

【问题讨论】:

标签: jquery jquery-mobile listviewitem


【解决方案1】:

我发现解决它的唯一方法是使用

$("#pageDays").page('destroy').page();

【讨论】:

    【解决方案2】:

    @Inaki 谢谢你的回复。在我的示例中,我在附加项目之后销毁了 page(div_list_id ul)。

    <div id="div_loc_list"></div>
    
    // firstly destroy ul
    $("#div_loc_list ul").page('destroy').page();
    var list_content ='';
    for (var i=0; i < posArray.length; i++) {
            var ltitle = posArray[i].title;
            list_content += '<li><a href="#direction_page">'+ltitle+'</a></li>';
     }
    $('#div_loc_list').append('<ul data-role="listview">'+list_content+'</ul>');
    

    【讨论】:

      最近更新 更多