2009-11-11 78 views
6

我在頁面加載時使用$(document).ready(function() {創建三個模態對話框。我通過調用setDialogWindows()方法創建這些對話框,並將它傳遞給對話框的div。在創建對話框代碼如下:如何在破壞後重新創建jQuery對話框

function setDialogWindows($element) { 
$element.dialog({ 
    autoOpen: false, 
    modal: true, 
    show: 'blind', 
    hide: 'blind', 
    width: 600, 
    resizable: false, 
    buttons: { 
    Cancel: function() { 
    $(this).dialog('destroy'); 
    }, 
    'Save': function() { 
    $(this).dialog('close'); 
    } 
    } 
}); 
} 

饒你對話的HTML,但我想完全復位當用戶點擊取消一些jQuery的拖/放功能。因此$(this).dialog('destroy')。但是,當我再次單擊鏈接打開對話框時,它不顯示。我意識到這是因爲我沒有重新插入它,但我真的不能這樣做,因爲對話框是在頁面加載時創建的。我嘗試添加各種以取消函數的遞歸調用這樣:

Cancel: function() { 
    $(this).dialog('destroy'); 
    setDialogWindows($element); 
    }, 

但是,這並不工作 - 當我單擊要打開的鏈接仍然沒有打開。有沒有辦法重新創建對話框?如果我現在唯一要做的地方是document.ready,我應該在哪裏重新初始化對話框?

謝謝。

回答

4

您可以將setDialogWindows爲點擊處理程序,並打開的AutoOpen爲真,是這樣的:

$('path/to/clickable/elements').click(function(){ 
    setDialogWindows($element); 
}); 

這將初始化爲每次點擊的對話框,並摧毀它時,它被關閉。

你也可以打開單獨的對話框,其中一個具有拖放功能,另一個沒有它。

相關問題