2010-02-04 4 views
7

Вот быстрый вопрос, который, вероятно, проще, чем я думаю.Закрыть диалоговое окно jQuery UI из элемента внутри него?

Я заполняю диалоговое окно jQuery UI с полученным html из вызова $ .ajax(). В некоторых случаях, когда html содержит кнопку, которая при нажатии, я хочу закрыть диалоговое окно.

Предполагая, что я ничего не знаю об элементе, который был указан как диалог, используя $("#element").dialog() ... (т. Е. Я понятия не имею, что такое селектор «#element» из внутреннего содержимого диалогового окна). лучший способ закрыть диалог от элемента, щелкнувшего внутри него?

ответ

16

Использование closest()

$(this).closest('.ui-dialog-content').dialog('close'); 
+2

Интересно ... на самом деле не появляется, что .ui-диалог - это правильный селектор. Диалог отображает несколько div, и тот, который, кажется, действительно нуждается в диалоговом окне («close»), вызванном на него, не является «.ui-dialog» ... все еще исследует ... – womp

+0

выглядит как .closest ('. Ui -dialog-контент ') диалог (.' закрыть '); это то, что необходимо. – womp

+0

@Womp, да, элемент '.ui-dialog' - это элемент упаковки, который jQuery ставит вокруг исходного содержимого, чтобы превратить его в диалоговое окно. – Alnitak

2

Что-то вроде:

$('a.close').click(function(e) { 
    $(this).closest('.dialog').dialog('close'); 
}); 
+0

, что если элемент вложен? – nickf

+0

Я исправлял свой пример, только когда вы написали, что – adamJLev

Смежные вопросы