从jQuery UI对话框中的元素关闭它?

7
以下是翻译的内容:

这是一个可能比我想象的更简单的快速问题。

我正在使用来自$.ajax()调用的结果HTML填充jQuery UI对话框。在某些情况下,该HTML包括一个按钮,当单击该按钮时,我希望关闭包含它的对话框。

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

2个回答

16

使用closest()

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

2
有趣的是...实际上似乎.ui-dialog不是正确的选择器。Dialog会弹出一些div,而似乎实际需要在其上调用dialog('close')的那个并不是".ui-dialog"...仍在调查中... - womp
看起来需要使用.closest('.ui-dialog-content').dialog('close');。 - womp
@Womp,是的,.ui-dialog元素是jQuery在原始内容周围放置的包装元素,将其转换为对话框框。 - Alnitak

2

Something like:

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

如果元素是嵌套的呢? - nickf
我正在修复我的示例,就在你写下那句话的时候。 - adamJLev

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接