如何判断是否有任何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。