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

cho*_*bo2 6 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');
Run Code Online (Sandbox Code Playgroud)

这不起作用,所以我需要得到实际的对象.

dav*_*vin 4

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

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

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

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

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

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