Определить, открыто ли диалоговое окно jQuery UI

Я использую диалоговое окно jQuery UI. Если он открыт, я хочу сделать одну вещь. Если он закрыт, я хочу сделать другое.

Мой вопрос: как я могу определить, открыто ли диалоговое окно jQuery UI?

92 голоса | спросил user208662 23 J000000Friday10 2010, 01:48:30

5 ответов


0

Если вы прочитали документы.

$('#mydialog').dialog('isOpen')

Этот метод возвращает логическое значение (true или false), а не объект jQuery.

ответил Byron Whitlock 23 J000000Friday10 2010, 01:51:38
0

На самом деле, вы должны явно сравнить его с истинным. Если диалог еще не существует, он не вернет false (как и следовало ожидать), он вернет объект DOM.

if ($('#mydialog').dialog('isOpen') === true) {
    // true
} else {
    // false
}
ответил marcovtwout 18 52011vEurope/Moscow11bEurope/MoscowFri, 18 Nov 2011 15:24:39 +0400 2011, 15:24:39
0

Если вы хотите проверить, открыто ли диалоговое окно для определенного элемента, вы можете сделать это:

if ($('#elem').closest('.ui-dialog').is(':visible')) { 
  // do something
}

Или, если вы просто хотите проверить, виден ли сам элемент, вы можете сделать это:

if ($('#elem').is(':visible')) { 
  // do something
}

Или ...

if ($('#elem:visible').length) { 
  // do something
}
ответил Nick Craver 23 J000000Friday10 2010, 01:50:04
0

В диалоговом окне jQuery есть свойство isOpen, которое можно использовать для проверки, открыто или нет диалоговое окно jQuery.

Вы можете увидеть пример по этой ссылке: http://www.codegateway.com /2012/02/detect-if-jquery-dialog-box-is-open.html

ответил Avinash 26 FebruaryEurope/MoscowbSun, 26 Feb 2012 11:48:56 +0400000000amSun, 26 Feb 2012 11:48:56 +040012 2012, 11:48:56
0

Комментарий Ника Крейвера - самый простой способ избежать ошибки, которая возникает, если диалог еще не был определен:

if ($('#elem').is(':visible')) { 
  // do something
}

Вы должны сначала установить видимость в своем CSS, используя просто:

#elem { display: none; }
ответил user2452922 29 FriEurope/Moscow2017-12-29T19:33:20+03:00Europe/Moscow12bEurope/MoscowFri, 29 Dec 2017 19:33:20 +0300 2017, 19:33:20

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132