index.php
// load jquery.js and jquery.ui.js
$("#dialog_a").load("template_a.php").dialog();
$("#dialog_b").load("template_b.php").dialog();
template_a.php
just HTML, no JS
template_b.php
// !!! -> load jquery.js and jquery.ui.js <- !!!
$("#dialog").load("template_c.php").dialog({modal:true});
Ako vidíte, načítavam dva dialógy. # dialog_a práve načíta text bez akejkoľvek funkcie, ale # dialog_b načíta samostatný skript, ktorý obsahuje jquery a jquery.ui znova.
Po otvorení # dialog_b (pomocou ukotvenia / onclick) to znamenánie je možné pristupovať k objektom v index.php (napr. zatvorenie dialógu). Pre mňa sa zdá, že template_b.php prepíše DOM. Ale nemám tušenie, ako vyriešiť tento problém. Máte?
Vopred ďakujem!
odpovede:
0 pre odpoveď č. 1Riešenie: použite Funkcia jQuery live ()!
index.php
$(".anchor_in_dialog_or_not_doesnt_matter").live("click", function() {
$("#dialog").dialog();
});
template_b.php
if ($_GET["standalone"])
// load jquery, jquery.ui
endif;
Dúfam, že niekomu pomôže!
editovať: Ako už bolo uvedené nižšie, použite na () namiesto live ()!