Как проверить, открыто ли несколько диалогов в Jquery? - PullRequest
2 голосов
/ 29 марта 2011

Я заметил, что могу открывать несколько вкладок из разных кнопок / ссылок.:)

Я хочу открыть диалоговое окно, только если другое диалоговое окно не открыто.

Я могу использовать оператор if и проверять каждый идентификатор, который имеетк нему прикреплен диалог, но на моей странице их много.

Мне нужен какой-то король выражения, который if (a dialog id open) {do not open $(this) dialog} или open $(this)dialog only if no other dialog is open.

Ответы [ 3 ]

4 голосов
/ 29 марта 2011

Вы можете использовать метод isOpen в диалоговом окне, чтобы проверить, открыт он или нет. Например:

if(!$(".selector").dialog("isOpen")) {
    // the dialog .selector is closed, you can open another one
}

Обновление:

Если вы хотите закрыть какие-либо другие открытые диалоговые окна перед открытием одного, вы можете направить все операции открытия диалоговых окон через функцию, которая запоминает, что нужно закрыть перед открытием другого.

В этом примере вызов openDialog закроет любое другое открытое диалоговое окно перед открытием указанного вами, а вызов closeDialog закроет текущий активный диалог.

function closeDialog() {
}

function openDialog(selector) {
    closeDialog();

    $(selector).dialog("open");
    closeDialog = function() { 
        $(selector).dialog("close");
    };
}

Пример "загрязняет" объект window функциями closeDialog и openDialog, но вы можете изменить его соответствующим образом, если хотите.

0 голосов
/ 22 января 2013

Попробуйте это:

if (! $ ("# Dialog-Save"). Data ("dialog") ._ isOpen) {

..

}

0 голосов
/ 15 мая 2012

Как насчет просто

if(!$('.ui-dialog').is(":visible")) {
//some stuff in here
}

Кажется, сделать трюк довольно легко?

Просто говорю ...:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...