0

索引.php

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

模板_a.php

just HTML, no JS

模板_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(通过锚点/onclick)后,无法访问index.php 中的对象(例如关闭对话框)。对我来说,template_b.php 似乎覆盖了 DOM。但我不知道如何解决这个问题。你有?

提前致谢!

4

1 回答 1

0

解决方案:使用jQuery live() 函数

索引.php

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

模板_b.php

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

我希望它可以帮助某人!

编辑:正如下面已经提到的 adamb,使用 on() 而不是 live()!

于 2012-11-22T12:59:19.240 回答