Закрытие всех диалоговых окон jquery в JavaScript

Как закрыть все диалоговые окна jquery ui в javascript?

Ситуация:

На странице есть несколько вещей, которые можно открыть с помощью диалоговых окон. Мне нужен способ закрыть все предыдущие окна перед открытием нового.


person Matthew Rygiel    schedule 07.10.2010    source источник


Ответы (2)


Все они имеют класс .ui-dialog-content, поэтому выберите его и закройте их, например:

$(".ui-dialog-content").dialog("close");
person Nick Craver    schedule 07.10.2010
comment
Спасибо. Не знаю, как я это пропустил. - person Matthew Rygiel; 08.10.2010
comment
Любой способ сделать это, если есть разные классы? - person bobek; 23.09.2011
comment
@bobek - обязательно, просто разделите их запятой в селекторе, например $(".class1, .class2") - person Nick Craver; 23.09.2011
comment
Это только выводит jQuery() для меня в консоли firebug. - person Noz; 05.07.2012
comment
Осторожный! Для диалогов в HTML, которые еще не были инициализированы, это может привести к ошибке. Рабочее решение находится здесь: stackoverflow.com/a/9060927/368896. - person Dan Nissenbaum; 26.05.2015

Будьте осторожны с вышесказанным. Если вы определите метод закрытия для своего диалога, он будет запущен, даже если диалог не открыт. Это была огромная проблема в проекте Angular, где мы вручную вызывали $apply() в нашем методе закрытия диалога. Другим событием была попытка закрыть все диалоги на экране, и наш метод закрытия был вызван, хотя он и не был открыт, что привело к проблеме с дайджестом.

person user3899909    schedule 14.01.2015