Просмотр списка не отображается сразу при второй загрузке страницы - PullRequest
2 голосов
/ 14 декабря 2011

У меня проблемы с JqueryMobile.Я загружаю страницу и создаю Listview на лету.При первой загрузке страницы список отображается нормально, когда я возвращаюсь на предыдущую страницу и нажимаю на ту же ссылку, просмотр списка не отображается как представление списка, как ссылка.У меня есть несколько страниц в одном документе, поэтому я ссылаюсь на страницы по идентификатору.Код ниже.

Где составляется список.

    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 не могувызов методов на просмотр списка перед инициализацией;попытался вызвать метод 'refresh

Я использую jQuery Mobile 1.0

Ответы [ 2 ]

1 голос
/ 01 мая 2012

Единственный способ решить эту проблему - использовать

$("#pageDays").page('destroy').page();
0 голосов
/ 28 января 2015

@ Инаки спасибо за ответ.В моем примере я уничтожил страницу (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>');
...