2010-02-04 89 views
7

下面是一个简单的问题,可能比我想象的要简单。从里面的元素关闭一个jQuery UI对话框?

我正在用$ .ajax()调用生成的html生成一个jQuery UI对话框。在某些情况下,html包含一个单击按钮时,我想关闭包含的对话框。

假设我不知道有关使用$("#element").dialog()指定为对话框的元素...(即,我不知道对话框内部内容中的“#element”选择器是什么) - 什么是从内部点击元素关闭对话框的最佳方式?

回答

16

使用closest()

$(this).closest('.ui-dialog-content').dialog('close'); 
+2

有趣......它实际上并没有出现.ui-dialog是正确的选择器。对话barf出了几个div,并且似乎实际上需要对话('close')调用的对象不是“.ui-dialog”...仍在调查... – womp 2010-02-05 00:18:59

+0

看起来像.closest('。ui - 对话内容“)对话框(”关闭“);是需要的。 – womp 2010-02-05 00:21:49

+0

@Womp,是的,'.ui-dialog'元素是jQuery放置原始内容以将其转换为对话框的包装元素。 – Alnitak 2012-06-02 20:54:00

2

喜欢的东西:

$('a.close').click(function(e) { 
    $(this).closest('.dialog').dialog('close'); 
}); 
+0

如果什么元素嵌套? – nickf 2010-02-04 23:25:05

+0

我正在修改我的示例,只是当你写这个 – adamJLev 2010-02-04 23:27:20