生成动态ListView

时间:2011-12-21 12:12:15

标签: jquery listview jquery-mobile

我正在关注示例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'),则显示下一个错误

  

未捕获的TypeError:无法读取属性'jQuery16401444779944140464'   未定义的

似乎pagebeforechange是两次火。真的我不知道我做错了什么。

1 个答案:

答案 0 :(得分:0)

错误是遗漏的,因此jqm无法找到要更改的页面,并且所有错误都是为此。非常感谢Emre帮助我。

相关问题