如何判断是否有任何jquery对话框打开?

时间:2012-02-03 14:52:29

标签: jquery jquery-ui jquery-selectors jquery-ui-dialog

寻找一个通用案例解决方案来确定当前是否有任何jquery对话框(有多个)。试过了:

$(".ui-dialog-content").dialog("isOpen") === true
$(".ui-dialog").dialog("isOpen") == true
$(document).dialog("isOpen") == true
$("*").dialog('isOpen') == true

没有任何成功。我希望“.ui-dialog-content”可以正常工作,因为我可以显然关闭任何与该选择器的打开对话框,但事实并非如此。

5 个答案:

答案 0 :(得分:30)

你可以尝试

if($(".ui-dialog").is(":visible")){
//dialog is open
}

答案 1 :(得分:2)

jQuery UI dailog有一个方法isOpen,如果对话框打开则返回true。在打开对话框的元素上调用它。

$('.ui-dialog-content').dialog("isOpen");

参考:http://jqueryui.com/demos/dialog/#method-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。