Jquery mobile 在页面外部初始化listview

Jquery mobile 在页面外部初始化listview,jquery-mobile,jquery-mobile-listview,Jquery Mobile,Jquery Mobile Listview,我正在使用jQuery Mobile构建一个单页应用程序 在标题中,我有一个“菜单”按钮,可以打开一个带有列表视图的弹出窗口 我想定义这个弹出对话框,并将其重新用于所有页面 在页面外部重用弹出窗口可以很好地工作,但弹出窗口内部的listview并没有得到增强(因为listview在内部使用父页面解析列表中包含的链接) 问题:是否可以在页面之外使用listview小部件?(我知道我可能必须指定一个基本url才能工作,但我认为这不会有问题)。不,这是不可能的。当您创建一个动态弹出窗口时,它不会驻留在

我正在使用jQuery Mobile构建一个单页应用程序

在标题中,我有一个“菜单”按钮,可以打开一个带有列表视图的弹出窗口

我想定义这个弹出对话框,并将其重新用于所有页面

在页面外部重用弹出窗口可以很好地工作,但弹出窗口内部的listview并没有得到增强(因为listview在内部使用父页面解析列表中包含的链接)


问题:是否可以在页面之外使用listview小部件?(我知道我可能必须指定一个基本url才能工作,但我认为这不会有问题)。

不,这是不可能的。当您创建一个动态弹出窗口时,它不会驻留在一个页面中,它会起作用,因为弹出窗口从来就不是用来显示每个页面的。但是,另一方面,listview要求列表位于父页面中。listview的
refresh
方法希望它位于父级。查看在listview刷新时调用的此函数:

_createSubPages: function () {
    var parentList = this.element,
        parentPage = parentList.closest(".ui-page"), //<-- This line
        parentUrl = parentPage.jqmData("url"), 
        parentId = parentUrl || parentPage[0][$.expando],
        parentListId = parentList.attr("id"),
        o = this.options,
        dns = "data-" + $.mobile.ns,
        self = this,
        persistentFooterID = parentPage.find(":jqmData(role='footer')").jqmData("id"),
        hasSubPages;

      // blah blee blah

    }).listview();
您可以将一个数组传递给此:

 $.makePopup(["Sweet Child 'O Mine", "Summer of '69", "Smoke in the Water", "Enter Sandman", "I thought I've seen everything"]).popup("open");
这里有一个更新的演示:


但很明显,这是一个骇人的问题。

您能创建一个JSFIDLE来演示您想说的内容吗?
 $.makePopup(["Sweet Child 'O Mine", "Summer of '69", "Smoke in the Water", "Enter Sandman", "I thought I've seen everything"]).popup("open");