2010-02-04 10 views
7

Oto krótkie pytanie, które jest prawdopodobnie prostsze, niż myślę.Zamknij okno dialogowe interfejsu jQuery z elementu wewnątrz niego?

Wprowadzam okno dialogowe interfejsu użytkownika jQuery z wynikowym html z wywołania $ .ajax(). W niektórych przypadkach html zawiera przycisk, który po kliknięciu chcę zamknąć okno dialogowe zawierające.

Zakładając, że nic nie wiem o elemencie, który został określony jako okno dialogowe przy użyciu $("#element").dialog() ... (tzn. Nie mam pojęcia, co to jest selektor "#element" z wewnętrznej zawartości okna dialogowego) - Co to jest najlepszy sposób na zamknięcie okna dialogowego z elementu klikniętego w środku?

Odpowiedz

16

Zastosowanie closest()

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

Interesujące ... to faktycznie nie wydaje się, że .ui-dialog jest prawym selektorem. Dialog wypycha kilka elementów div, a tym, który wydaje się rzeczywiście wymagać wywoływanego okna dialogowego ("zamknij"), nie jest ".ui-dialog" ... wciąż bada ... – womp

+0

wygląda jak .closest ('.ui -dialog-content '). dialog ("zamknij"); jest to, co jest potrzebne. – womp

+0

@Womp, yeah, element '.ui-dialog' jest elementem zawijania, który jQuery umieszcza wokół oryginalnej treści, aby zamienić go w okno dialogowe. – Alnitak

2

Coś jak:

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

co jeśli element jest zagnieżdżony? – nickf

+0

Naprawiłem próbkę właśnie wtedy, gdy napisałeś, że – adamJLev

Powiązane problemy