Dialog中的jQuery Mobile Listview不会初始化

时间:2014-01-31 19:45:58

标签: jquery jquery-mobile jquery-mobile-listview

我正在动态创建一个对话框,其中包含一个列表视图,并在用户导航到特定body时将其附加到data-role=page。将对话框追加到body后,我致电

$('#myDialog').dialog();
$('#myList', '#myDialog').listview();

当我调用listview()函数时,我收到以下错误:

Uncaught TypeError: Cannot read property 'jQuery19105852627926506102' of undefined

我能够初始化listview的唯一方法是在对话框的pageshow事件期间执行此操作,但随后用户实际看到listview项目而没有样式,直到listview()函数为完整。

有没有办法在对话框显示之前在对话框中初始化listview?

更新 如果我使用`$('#myDialog'),我会得到同样的错误。触发器('create')。

1 个答案:

答案 0 :(得分:1)

对话框的处理方式与页面相同。将页面/对话框动态添加到DOM中时,在显示它们之前,不需要调用任何类型的增强,因为它们会被初始化,以及其中的所有小部件。

您只需将对话框附加到<body>$.mobile.pageContainer,然后使用$.mobile.changePage()打开对话框。

$.mobile.pageContainer.append("dialog HTML markup");
$.mobile.changePage("#dialog_ID");

请注意,在页面中未创建/初始化的元素上调用增强方法将导致错误。但是,您可以在访问/初始化页面上刷新小部件。

  

<强> Demo