/ / jQuery UI: Wie öffne / schließe ich einen Dialog, der von einem anderen Dialog geöffnet wurde? - javascript, jquery, jquery-ui, Dialog, überschreiben

jQuery UI: Wie öffne / schließe ich einen Dialog, der von einem anderen Dialog geöffnet wurde? - javascript, jquery, jquery-ui, Dialog, überschreiben

index.php

// load jquery.js and jquery.ui.js
$("#dialog_a").load("template_a.php").dialog();
$("#dialog_b").load("template_b.php").dialog();

Vorlage_a.php

just HTML, no JS

Vorlage_b.php

// !!! -> load jquery.js and jquery.ui.js <- !!!
$("#dialog").load("template_c.php").dialog({modal:true});

Wie Sie sehen können, lade ich zwei Dialoge. #dialog_a lädt nur Text ohne irgendeine Funktion, aber #dialog_b lädt ein Standalone-Skript, das wiederum jquery und jquery.ui enthält.

Nach dem Öffnen von #dialog_b (durch Anker / onclick) ist es "snicht möglich, auf Objekte in der index.php zuzugreifen (z. B. Schließen eines Dialogs). Für mich scheint es, dass template_b.php das DOM überschreibt. Aber ich habe keine Ahnung, wie ich dieses Problem beheben kann. Haben Sie?

Danke im Voraus!

Antworten:

0 für die Antwort № 1

Lösung: Verwenden Sie die jQuery live () -Funktion!

index.php

$(".anchor_in_dialog_or_not_doesnt_matter").live("click", function() {
$("#dialog").dialog();
});

Vorlage_b.php

if ($_GET["standalone"])
// load jquery, jquery.ui
endif;

Ich hoffe es hilft jemandem!

Bearbeiten: Wie unten schon erwähnt, benutze on () statt live ()!