Создать динамический ListView - PullRequest
1 голос
/ 21 декабря 2011

Я следую примеру http://jquerymobile.com/test/docs/pages/page-dynamic.html, но моя проблема в том, что он вообще не отображает страницу, я вижу только белую страницу.Я не знаю, в чем проблема, даже я изменил page.page() на page.trigger('create'), а также попробовать content.find(":jqmData(role=listview)").listview('refresh'), но ничего не сделал.Дело в том, что у меня нет ошибки в консоли, поэтому я не знаю, что я делаю неправильно.Вот мой код:

$(document).bind("pagebeforechange", function(e, data) {
    console.log('[binding][pagebeforechange]');
    if( typeof data.toPage === "string") {
        var u = $.mobile.path.parseUrl(data.toPage);
        if(u.hash.search(/^#watch/) !== -1) {
            console.log('[binding] setWatch');
            var id = u.hash.replace(/.*id=/, "");
            e.preventDefault();
            setWatch(u, id);
        } else if(u.hash.search(/^#playlist/) !== -1) {
            console.log('[binding] setPlaylist');
            //Bind the change page event, and if it is playlist page, call setPlaylist
            playlistId = u.hash.replace(/.*id=/, "");
            e.preventDefault();
            setPlaylist(u);
        }
    }
});

function setPlaylist(urlObj) {
    console.log('[setPlaylist]');
    var page = $('#playlist');
    var content = $('#playlistContent');
    var html = getListHtml(playlistId); //Here a get the complete list code
    content.empty();
    content.html(html);
    console.log('[setPlaylist] before trigger');
    page.trigger('create');
    //page.page();
    //content.find(":jqmData(role=listview)").listview('refresh');
    page.listview();

    var options = {};
    options.reloadPage = true;
    options.dataUrl = urlObj.href;
    options.transition = "slide";
    $.mobile.changePage(page, options);
    console.log('[setPlaylist] changepage');
    location.hash = urlObj.hash;
}

Так что, если у вас есть какие-либо представления о том, что я делаю неправильно, пожалуйста, дайте мне знать.

Спасибо !!

Редактировать:

Если я использую content.find(":jqmData(role=listview)").listview('refresh'), он показывает следующую ошибку

Uncaught TypeError: Невозможно прочитать свойство 'jQuery16401444779944140464' из неопределенного

И кажется, чтоpagebeforechange это огонь дважды.На самом деле я не знал, что я делаю неправильно.

1 Ответ

0 голосов
/ 23 декабря 2011

Ошибка отсутствует, поэтому jqm не может найти страницу для изменения, и вся ошибка была для этого. Огромное спасибо Эмре за помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...