Подтвердить что ты не робот

Как узнать, открыт ли какой-либо диалог jquery?

Ищете решение для общего случая, чтобы определить, открыто ли какое-либо диалоговое окно jquery (есть несколько). Попробовали:

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

без каких-либо успехов. Я ожидал, что ".ui-dialog-content" будет работать, поскольку я могу закрыть любой открытый диалог с этим селектором, но это не так.

4b9b3361

Ответ 1

вы можете попробовать

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

Ответ 2

jQuery UI dailog имеет метод isOpen, который возвращает true, если открыт dailog. Вызовите его на элементе, который открыл диалоговое окно.

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

Отказ: http://jqueryui.com/demos/dialog/#method-isOpen

Ответ 3

В соответствии с документацией API вы должны использовать

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

чтобы определить, открыто или нет диалоговое окно. Функция возвращает логическое значение. Например,

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

Ответ 4

Проверьте, отображается ли это с помощью CSS? Не уверен, что это правильный подход, но я подозреваю, что он сработает.

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

Ответ 5

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

Этот будет работать во всех случаях, когда вы вызываете Dialog из DOM.