Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery mobile jquery手机弹出窗口不';Don’不要等着点击_Jquery Mobile_Popup - Fatal编程技术网

Jquery mobile jquery手机弹出窗口不';Don’不要等着点击

Jquery mobile jquery手机弹出窗口不';Don’不要等着点击,jquery-mobile,popup,Jquery Mobile,Popup,使用jquerymobile1.2,我有一个弹出菜单(OK/Cancel),在切换到新页面之前应该回答这个问题。但页面在单击之前会发生更改(弹出窗口消失): if (rider.time.valueOf() > 0) { $('#popupMsg').text("Rider has already finished; update the time?"); $('#alreadyFinished').popup("open"); } alert("rf"); // othe

使用jquerymobile1.2,我有一个弹出菜单(OK/Cancel),在切换到新页面之前应该回答这个问题。但页面在单击之前会发生更改(弹出窗口消失):

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>


即使没有弹出窗口中的按钮,弹出窗口也不会持续。那怎么了?

jQuery手机弹出窗口是页面的一部分。更改页面将关闭任何当前弹出窗口,因此您不应在弹出窗口打开后直接调用它。下面的代码将打开弹出窗口而不是关闭它

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()}
});

此代码不够,请向我们展示更多。除非你的changePage函数绑定到按钮OKBtn,否则无论你做什么,它都会改变页面。我试图以一种模式的方式使用弹出窗口,作为一种比“警告”更好的方式。这段代码符合我的要求,但看起来不太好:对不起,Romain和@Gajotres,这是在我完成编辑之前发布的。我试图使用弹出窗口作为模式对话框,但我认为它无法实现。uising'result=confirm(“…?”)完成了这项工作,但看起来没有那么好,而且在不同的平台上有所不同。我知道我可以使用对话框,但这会填满整个页面。对,谢谢,这使它成为模态,所以你回答了我的问题!但是现在需要根据在弹出窗口中单击的按钮(确定或取消)确定如何执行不同的{restofCode}……您只需将代码绑定到弹出窗口的按钮,在这种情况下,您可能需要解除popupafterclose事件的绑定。仅供参考,JQM 1.3.0现在有一个“可忽略”的弹出窗口选项,您会发现它很有用。当然,现在看起来很明显。显然,我用MS VisualStudio和C#懒散地创建事件处理程序的时间太长了。JQM 1.3看起来很棒,很高兴看到技术发展如此之快。