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

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

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

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

你可以试试

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

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

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

参考: http : //jqueryui.com/demos/dialog/#method-isOpen

根据API文档,您应该使用

 $( ".selector" ).dialog( "isOpen" ) 

确定对话框是否打开。 该函数返回一个布尔值。 例如,

 if( $("selector").dialog("isOpen")===true ){ /*do stuff when dialog is open*/ } else { /*do stuff when dialog is closed*/ }; 

通过CSS检查它是否显示? 不确定这是否是正确的方法,但我怀疑它会起作用。

 $(".ui-dialog").css('display') != "none" 
 $('html').click(function() { x++; if(x==2){ $(".ui-dialog-titlebar-close").trigger("click"); x=0; } }); 

这个适用于所有情况,您可以从DOM调用Dialog。