的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});
如您所见,我加载了两个对话框。 #dialog_a只加载没有任何函数的文本但是#dialog_b再次加载一个包含jquery和jquery.ui的独立脚本。
打开#dialog_b(通过anchor / onclick)后,无法访问index.php中的对象(例如关闭对话框)。对我来说,似乎template_b.php会覆盖DOM。但我不知道如何解决这个问题。你有吗?
提前致谢!
答案 0 :(得分:0)
解决方案:使用jQuery live() function!
<强>的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;
我希望它有所帮助!
修改:如下面已经提到的adamb,使用on()而不是live()!