Ответ 1
вы можете попробовать
if($(".ui-dialog").is(":visible")){
//dialog is open
}
Ищете решение для общего случая, чтобы определить, открыто ли какое-либо диалоговое окно 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
, который возвращает true, если открыт dailog. Вызовите его на элементе, который открыл диалоговое окно.
$('.ui-dialog-content').dialog("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;
}
});
Этот будет работать во всех случаях, когда вы вызываете Dialog из DOM.