How to tell if any jquery dialog happens to be open? [duplicate]

扶醉桌前 提交于 2019-12-03 15:17:35

问题


Looking for a general case solution to determine if any jquery dialog (there are multiple) is currently open. Have tried:

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

without any success. I expected ".ui-dialog-content" to work, since I can apparently close any open dialog with that selector, but it does not.


回答1:


you can try

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



回答2:


jQuery UI dailog has a method isOpen which returns true if the dailog is open. Call it on the element which has opened the dialog box.

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

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




回答3:


According to the API documentation, you should use

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

to determine whether the dialog is open or not. The function returns a boolean. For example,

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



回答4:


Check if it's being displayed or not via CSS? Not sure if it's the right approach, but I suspect it'll work.

$(".ui-dialog").css('display') != "none"



回答5:


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

This one will work in all cases, where you call Dialog from DOM.



来源:https://stackoverflow.com/questions/9130564/how-to-tell-if-any-jquery-dialog-happens-to-be-open

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!