我正在制作的应用程序有一个列表视图,当单击列表视图项目时,它会打开一个显示一些信息的新页面。
当我最初单击一个列表视图项目时,该页面可以正常打开,没有任何问题。当我单击后退按钮并单击另一个列表视图项时,页面加载但根本没有 JQM 样式。
我设法用下面的代码解决了上面的问题,但是现在页面第二次加载显示无样式的页面,屏幕闪烁并且正确加载。如何在没有在 pageshow 事件上重新加载屏幕的情况下获得相同的最终结果。
重新加载页面的代码:
$("#moduleinfo").live('pageshow', function() {
$('#infoPara').trigger("create");
});
根据单击的列表视图项创建页面的代码
var output = "Module Code: " + results.rows.item(0).module +
"<br/>Room No: " + results.rows.item(0).room +
"<br/>URL:" + results.rows.item(0).url +
"<b/r><a href='#' data-role='button' data-theme='d' onclick='openURL(\""
+ results.rows.item(0).url + "\")'>Open URL</a>" +
"</br><a href='#' data-role='button' onclick='deleteEntry(\""
+ results.rows.item(0).id + "\")'>Delete Entry</a>";
$('#infoPara').html(output);
$.mobile.changePage( "index.html#moduleinfo", { transition: "slide"} );
页面 HTML
<div data-role="primary-content" id="modinfo">
<p id="infoPara"></p>
</div>
很确定我的问题与这个问题有关:
How to get jQuery mobile magic to work in "pageshow" event handler? (JQM 1.1.0)
谢谢!