7 Stimmen

Schließen Sie ein jQuery UI-Dialogfeld von einem Element darin?

Hier ist eine schnelle Frage, die wahrscheinlich einfacher ist, als ich denke.

Ich fülle einen jQuery UI-Dialog mit dem resultierenden html aus einem $.ajax()-Aufruf. In bestimmten Fällen enthält dieses html einen Button, der beim Klicken den enthaltenen Dialog schließen soll.

Anzunehmen, dass ich nichts über das Element weiß, das über $("#element").dialog() als Dialog festgelegt wurde (d. h. ich habe keine Ahnung, welcher Selektor "#element" im inneren Inhalt des Dialogs ist) - Wie kann der Dialog am besten geschlossen werden, wenn ein Element darin angeklickt wird?

16voto

nickf Punkte 517253

Verwenden Sie closest()

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

2 Stimmen

Interessant... es scheint tatsächlich nicht so, als wäre .ui-dialog der richtige Selector. Dialog wirft ein paar divs aus, und derjenige, auf dem anscheinend dialog('close') aufgerufen werden muss, ist nicht ".ui-dialog"... untersuche es weiter...

0 Stimmen

Es sieht so aus, als ob .closest('.ui-dialog-content').dialog('close'); benötigt wird.

0 Stimmen

@Womp, ja, das .ui-dialog Element ist das umschließende Element, das jQuery um den Originalinhalt legt, um ihn in ein Dialogfeld zu verwandeln.

2voto

adamJLev Punkte 13305

Etwas Ähnliches:

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

0 Stimmen

Was passiert, wenn das Element verschachtelt ist?

0 Stimmen

Ich habe gerade mein Muster repariert, als du das geschrieben hast

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X