假设我打开了一个没有“id”的对话框,我如何找到该对话框并获取对话框对象,以便我可以对其执行 .dialog('close') 操作?
示例
// say if this was my dialog
<div>
<input type="button" id="btn" />
</div>
$("#btn").parents("div").dialog('close');
但这不起作用,所以我需要获取实际的对象。
最佳答案
这就是你应该在这些 div 上有一个 id 的原因。考虑以下选项:
考虑将 id 添加到标记中。这很容易做到和维护。
否则,当您最初获取 div 时,在执行
.dialog()
之前,为它们提供动态 ID:el.attr('id', '对话框')
。如果您不想给它们 id(出于某种奇怪的原因),您在 js 代码中的某个时间点仍然拥有它们,因此请保存对这些对象的引用。稍后,引用所需的引用,您可以调用
.dialog('close')
。这还将为您执行缓存,因此您无需再次搜索 DOM 树。作为最后的手段,如果您不想执行上述操作,请按照最初的方式引用它们(这并不总是一个好主意,尤其是在 DOM 发生更改的情况下)。
虽然仅供引用,但您的示例(使用最后一个选项)有效:http://jsfiddle.net/vbcMW/
关于jquery - 如何获取 jquery ui 对话框对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5750149/