jquery - 如何获取 jquery ui 对话框对象?

标签 jquery jquery-ui jquery-ui-dialog

假设我打开了一个没有“id”的对话框,我如何找到该对话框并获取对话框对象,以便我可以对其执行 .dialog('close') 操作?

示例

// say if this was my dialog
<div> 
   <input type="button" id="btn" />
</div>

$("#btn").parents("div").dialog('close');

但这不起作用,所以我需要获取实际的对象。

最佳答案

这就是你应该在这些 div 上有一个 id 的原因。考虑以下选项:

  1. 考虑将 id 添加到标记中。这很容易做到和维护。

  2. 否则,当您最初获取 div 时,在执行 .dialog() 之前,为它们提供动态 ID:el.attr('id', '对话框')

  3. 如果您不想给它们 id(出于某种奇怪的原因),您在 js 代码中的某个时间点仍然拥有它们,因此请保存对这些对象的引用。稍后,引用所需的引用,您可以调用.dialog('close')。这还将为您执行缓存,因此您无需再次搜索 DOM 树。

  4. 作为最后的手段,如果您不想执行上述操作,请按照最初的方式引用它们(这并不总是一个好主意,尤其是在 DOM 发生更改的情况下)。

虽然仅供引用,但您的示例(使用最后一个选项)有效:http://jsfiddle.net/vbcMW/

关于jquery - 如何获取 jquery ui 对话框对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5750149/

相关文章:

javascript - 无法使用模态对话框打开辅助对话框

javascript - $(document).ready() 完成后如何触发某些东西?

jquery - ajax调用后函数未执行

css - 如何使用完全相同的选择器获取多个 CSS 文件并强制其中一个文件仅用于特定的 div?

jQuery UI 选项卡向错误的 div 添加类?

javascript - 使用 Jquery 自定义 ui 对话框中的函数调用打印第二组值

javascript - 关闭按钮 X 未移除

jQuery 如果鼠标悬停 2 秒。开始动画或根本不动画

javascript - Backbone 按 ID 删除行

javascript - jQuery UI 选项卡不工作