使用jquery mobile 1.2,我有一个弹出菜单(确定/取消),在更改为新页面之前应该回答。但是在点击之前页面会改变(并且弹出窗口会消失):
if (rider.time.valueOf() > 0) {
$('#popupMsg').text("Rider has already finished; update the time?");
$('#alreadyFinished').popup("open");
}
alert("rf");
// other code.......
$.mobile.changePage("#finishLine");
// other code.......
我进入“警报”只是为了证明弹出窗口确实出现 - 它就在警报后面,但是一旦点击警报,弹出窗口就会关闭(并且页面会发生变化)。还尝试删除“其他代码”,但仍然是同样的问题。
这是html:
<div data-role="popup" id="alreadyFinished" class="ui-content">
<p id="popupMsg"></p>
<a data-role="button" data-theme="b" id="OKBtn">OK</a>
<a href="#finishLine" data-role="button" data-theme="c" id="cancelBtn">Cancel</a>
</div>
即使没有弹出窗口中的按钮,弹出窗口也不会保留。那有什么不对?
答案 0 :(得分:0)
jQuery Mobile弹出窗口是页面的一部分。更改页面将关闭任何当前弹出窗口,因此您不应在打开弹出窗口后直接调用它。以下代码将打开您的弹出窗口而不是关闭它。
if (rider.time.valueOf() > 0) {
$('#popupMsg').text("Rider has already finished; update the time?");
$('#alreadyFinished').popup("open");
} else {
alert("rf");
// other code.......
$.mobile.changePage("#finishLine");
// other code.......
}
如果您希望弹出窗口是模态的,最简单的方法是将其余代码的执行绑定到弹出窗口的关闭。例如,如果您希望在弹出窗口关闭后运行restOfCode
函数:
$('#alreadyFinished').popup("open");
$( "#alreadyFinished" ).on({
popupafterclose: function(event, ui) {restOfCode()}
});