【问题标题】:JqueryUI Dialog issue, trying to close dialog withinJqueryUI 对话框问题,试图在其中关闭对话框
【发布时间】:2015-04-10 22:40:14
【问题描述】:

我目前正在做一个新项目,但我有一个小问题,我正在使用

    $(".ui-dialog-content").dialog().dialog("close"); 

要从其中关闭 JqueryUI 对话框,也就是用户单击确定,对话框应该关闭。

但是上面似乎关闭了所有打开的对话框,这是一个大问题,你们知道有什么可以从其中关闭一个对话框,并且只关闭那个对话框。

最后一件事要注意,所有对话框 ID 都是基于打开时间的,因此试图从那里关闭它们几乎是不可能的 :(.

感谢您的帮助,期待您的回复。

【问题讨论】:

  • 请显示更多代码。很可能存在一个引用当前对话框的变量,可能是$(this),您可以使用它来代替$(".ui-dialog-content")。但是我们需要查看上下文才能知道它应该是什么。
  • 另外,.dialog("close") 之前不需要.dialog()
  • 不幸的是 $(this).dialog("close");不会关闭任何对话框,而且我在 $.post 之后自行运行,所以在 ajax 请求之后,单个对话框将关闭。
  • 我让你发布你的代码。如果在 AJAX 回调函数中运行,则需要将变量绑定到对话框,因为 this 没有保存在闭包中。
  • 已修复,感谢您的惊人帮助,更改为 $("#submitForm").closest(".ui-dialog-content").dialog("close");我不知道为什么这行得通,其他的却没有,但解决了这个问题,感谢您的惊人帮助

标签: jquery jquery-ui dialog jquery-ui-dialog


【解决方案1】:

在 cmets 的帮助下,我终于修复了它,我将代码更改为

$("#submitForm").closest(".ui-dialog-content").dialog("close");

哪个关闭了对话框,而不是其他打开的对话框。

【讨论】:

  • 如果您在用于对话框的 DIV 上有一个 ID,您可以直接使用它:$("#dialogid").dialog("close");
  • 谢谢,但是 ID 是随机生成的,因此可以加载多个,并且每个都不会影响另一个:D
  • 但是其中只有一个有一个名为submitForm的DIV?
  • 我仍然认为您应该能够使用this 做一些事情。如果您发布代码,我将向您展示纠正它的正确方法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-29
  • 2011-12-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多