寻找一个通用案例解决方案来确定当前是否有任何jquery对话框(有多个)。试过了:
$(".ui-dialog-content").dialog("isOpen") === true
$(".ui-dialog").dialog("isOpen") == true
$(document).dialog("isOpen") == true
$("*").dialog('isOpen') == true
没有任何成功。我希望“.ui-dialog-content”可以正常工作,因为我可以显然关闭任何与该选择器的打开对话框,但事实并非如此。
答案 0 :(得分:30)
你可以尝试
if($(".ui-dialog").is(":visible")){
//dialog is open
}
答案 1 :(得分:2)
jQuery UI dailog有一个方法isOpen
,如果对话框打开则返回true。在打开对话框的元素上调用它。
$('.ui-dialog-content').dialog("isOpen");
答案 2 :(得分:2)
根据API文档,您应该使用
$( ".selector" ).dialog( "isOpen" )
确定对话框是否打开。该函数返回一个布尔值。 例如,
if( $("selector").dialog("isOpen")===true ){
/*do stuff when dialog is open*/
} else {
/*do stuff when dialog is closed*/
};
答案 3 :(得分:0)
通过CSS检查是否显示?不确定这是否是正确的方法,但我怀疑它会起作用。
$(".ui-dialog").css('display') != "none"
答案 4 :(得分:-1)
$('html').click(function() {
x++;
if(x==2){
$(".ui-dialog-titlebar-close").trigger("click");
x=0;
}
});
这个适用于所有情况,您可以从DOM调用Dialog。