【问题标题】:jQuery UI: how to open/close a dialog opened by another dialog?jQuery UI:如何打开/关闭另一个对话框打开的对话框?
【发布时间】:2012-11-10 03:25:27
【问题描述】:

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

提前致谢!

【问题讨论】:

  • 如果您的主页中已经有 jQuery 和 jQueryUI,请不要再次加载它。把它从你的 template_b.php 中取出
  • @adamb 我不得不谷歌,但现在我知道这个社区是如何运作的。谢谢你的建议!

标签: javascript jquery jquery-ui dialog overwrite


【解决方案1】:

解决方案:使用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()!

【讨论】:

猜你喜欢
  • 2015-12-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多