如果jQuery Mobile弹出窗口打开,如何通过jQuery检查?

我可以激活以下jQuery Mobile弹出窗口:

Waiting...

使用jQuery命令:

  $(waiting1).popup( '开'); 

但后来我想以编程方式确认弹出窗口打开,如果没有,则使用IF语句触发警报。 我尝试使用CSS显示属性:

  if($(waiting1).css('display')!='block'){
    警报(
         “错误:不应该看到等待弹出窗口。”
     );
     return(-1);
 }; 

…但作为一个jQuery Mobile弹出窗口,显然该属性始终是“阻止”,无论它是否可见。 在IF语句中检查这个的正确方法是什么? 谢谢你的帮助。

在jQuery Mobile中,类出现时会应用于弹出窗口的容器。 ui-popup-active当它ui-popup-hidden时, ui-popup-hidden隐藏起来。 因此,您可以检查该类,而不是检查'block'':visible'

 if ( $(waiting1).parent().hasClass('ui-popup-hidden')) { alert( "Error: Waiting popup should not be visible." ); return( -1 ); }; 

假设popup有类popupLogin

 if ($.mobile.activePage.find(".popupLogin").parent().hasClass("ui-popup-active")){ aler('popup is open') } 

jsfiddle链接: http : //jsfiddle.net/umerqureshi/fuy4Lz5z/

我们可以使用jQuery Mobile Popup互斥锁:

 if ($.mobile.popup.active && $.mobile.popup.active.element[0] === $(waiting1)[0]) { alert('popup is opened'); } 

这对我有用:

 if(!$.mobile.activePage.find(popupID).is(":visible")) $(popupID).popup('close');