jQuery UI:如何打开/关闭另一个对话框打开的对话框?

时间:2012-11-21 19:30:20

标签: javascript jquery jquery-ui dialog overwrite

的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。但我不知道如何解决这个问题。你有吗?

提前致谢!

1 个答案:

答案 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()!