关闭上一个弹出窗口后,jQuery Mobile弹出窗口无法打开

我有一个jQuery弹出窗口,它接收可能导致错误的用户输入。 如果有错误,我想要第二个弹出窗口,但是我无法使用它。

这是一个简单的例子,我也有jsfiddle: http : //jsfiddle.net/tz4ju/2/

HTML:

 

JavaScript:

 window.create_folder_submit = function () { $("#addFolderDialog").popup("close"); $("#errormsg").text("ERROR!"); $("#errorDialog").popup("open"); } 

顺便说一句,如果我在其他任何地方调用$("#errorDialog").popup("open") ,它就可以了。 我究竟做错了什么?

根据此文档(请参阅页面末尾) jquery mobile中不允许使用链接弹出窗口。

您可以像下面这样添加链接弹出窗口。

 $( document ).on( "pageinit", function() { $( '.popupParent' ).on({ popupafterclose: function() { setTimeout( function(){ $( '.popupChild' ).popup( 'open' ) }, 100 ); } }); }); 

请参阅此小提琴演示

检查浏览器弹出窗口阻止程序。 因此需要使用setinterval来触发它。

简单地写下你的js,

 window.create_folder_submit = function () { $("#addFolderDialog").popup("close"); $("#errormsg").text("ERROR!"); var popup = setInterval(function(){ $("#errorDialog").popup('open'); clearInterval(popup); },1); }; 

看看这个有效的FIDDLE演示

实际上使用popupafterclose事件是行不通的,因为每次你离开弹出窗口都会被触发。 即使你点击“取消”。 你应该在收盘和开盘之间做一个简单的延迟。