2010-02-04 86 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