Я использую диалог интерфейса jQuery. Если он открыт, я хочу сделать одно. Если он закрыт, я хочу сделать другое.
Мой вопрос: как определить, открыто ли диалоговое окно jQuery UI или нет?
Если вы читаете docs.
$('#mydialog').dialog('isOpen')
Вам нужно явно сравнить это с true, чтобы избежать возврата диалогового окна в качестве объекта.
Собственно, вы должны явно сравнить его с true. Если диалог еще не существует, он не вернет false (как и следовало ожидать), он вернет объект DOM.
if ($('#mydialog').dialog('isOpen') === true) {
// true
} else {
// false
}
Если вы хотите проверить, откроется ли диалоговое окно для определенного элемента, вы можете сделать это:
if ($('#elem').closest('.ui-dialog').is(':visible')) {
// do something
}
Или, если вы просто хотите проверить, видимо ли сам элемент, вы можете сделать:
if ($('#elem').is(':visible')) {
// do something
}
Или...
if ($('#elem:visible').length) {
// do something
}
$dialog.hasClass('ui-dialog-content')
jQuery имеет свойство isOpen
, которое может использоваться, чтобы проверить, открыто ли диалоговое окно jQuery.
Вы можете увидеть пример по этой ссылке: http://www.codegateway.com/2012/02/detect-if-jquery-dialog-box-is-open.html