我可以激活以下jQuery Mobile弹出窗口:
<div data-role="popup" id="waiting1" data-overlay-theme="a" data-corners="false" data-tolerance="30,15" data-dismissible="false">
<div class="modalAlert" id="waitingContent">
Waiting...
</div>
</div>
使用jQuery命令:
$(waiting1).popup('open');
但是我想以编程方式确认弹出窗口已打开,如果没有,则使用IF语句触发警报。我尝试使用CSS显示属性:
if ( $(waiting1).css('display') != 'block') { alert( "Error: Waiting popup should not be visible." ); return( -1 ); };
...但是作为jQuery Mobile弹出窗口,显然该属性始终是“阻止”,无论它是否可见。在IF语句中检查这个的正确方法是什么?谢谢你的帮助。
答案 0 :(得分:8)
在jQuery Mobile中,一个类出现时会应用于弹出窗口的容器。 ui-popup-active
当它可见时ui-popup-hidden
隐藏它。因此,您可以检查该类:
'block'
或':visible'
if ( $(waiting1).parent().hasClass('ui-popup-hidden')) {
alert(
"Error: Waiting popup should not be visible."
);
return( -1 );
};
答案 1 :(得分:2)
我们可以使用jQuery Mobile Popup互斥锁:
if ($.mobile.popup.active && $.mobile.popup.active.element[0] === $(waiting1)[0]) {
alert('popup is opened');
}
答案 2 :(得分:1)
假设弹出窗口具有 popupLogin
类if ($.mobile.activePage.find(".popupLogin").parent().hasClass("ui-popup-active")){
alert('popup is open');
}
请参阅此jsfiddle:http://jsfiddle.net/umerqureshi/fuy4Lz5z/
答案 3 :(得分:0)
这对我有用:
if(!$.mobile.activePage.find(popupID).is(":visible")) $(popupID).popup('close');