2015-01-15 2 views
0

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

Я использую следующий селектор, чтобы определить, отображается ли в настоящее время диалоговое окно jQuery: ($(".ui-dialog").is(":visible")). Я думал, что могу использовать этот же селектор, чтобы на самом деле получить ссылку на объект диалогового контейнера и вызвать на нем .dialog('close'), однако это не так. Кажется, что селектор возвращает ссылку на содержащийся элемент содержимого диалога, а не на контейнер диалога div. Как мне получить id диалогового контейнера и вызвать его?

я в конечном итоге делает это:

if ($(".ui-dialog").is(":visible")) { $(".ui-dialog").children('.ui-dialog-content').dialog('close'); }

+1

Если следить за того, что вы на самом деле диалоги открыли, она должна быть тривиальной, чтобы закрыть их снова – adeneo

+0

@adeneo, эта логика выполняется в случае. Я не хочу, чтобы диалоговые ссылки были видны для события, скорее я хочу, чтобы событие посмотрело на DOM и посмотрело, отображаются ли какие-либо диалоги. – codechurn

ответ

1

Попробуйте $(".ui-dialog-content").dialog("close");. Похоже, это элемент, к которому привязан диалог.

+0

Да, я внимательно посмотрел на DOM и обнаружил это. Похоже, он создает элемент оболочки с классом 'ui-dialog', а фактический элемент, к которому привязан диалог, является дочерним и помечен' .ui-dialog-content'. – codechurn

0

Поскольку он открыт, вам не нужно его проверять. Когда пользователь нажимает какую-либо кнопку или щелкает из модального диалога, вы можете просто закрыть ее.

$('.ui-dialog').fadeOut(); 
1

Если диалоговое окно прикреплено к .ui-dialog-content, вы можете сделать что-то подобное в качестве теста. Затем работайте над тем, что будет масштабироваться.

<button id="close">close the dialog</button> 
<script type="text/javascript"> 
    $("#close").click(function() { 
     $(".ui-dialog-content").dialog("close"); 
    }); 
</script> 
Смежные вопросы