2009-11-11 11 views
6

Ich erstelle drei modale Dialoge beim Laden der Seite (mit $(document).ready(function() {). Ich erstelle diese Dialoge, indem ich eine Methode aufruft, und übergebe es dem div für den Dialog. Dialogerstellung Code ist unten:Wie Jquery-Dialog nach dem Zerstören neu erstellen

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'); 
    } 
    } 
}); 
} 

Ich werde Sie den Dialog html verschonen, aber es gibt einige Jquery Drag/Drop-Funktionalität, die ich will vollständig zurückgesetzt werden, wenn der Benutzer auf Abbrechen klickt. Daher die $(this).dialog('destroy'). Wenn ich jedoch erneut auf den Link klicke, um das Dialogfeld zu öffnen, wird er nicht angezeigt. Ich weiß, das liegt daran, dass ich es nicht wieder eingefügt habe, aber das kann ich wirklich nicht, weil die Dialoge beim Laden der Seite erstellt werden. Ich habe versucht, das Hinzufügen einer rekursiven Aufruf von Arten auf die Abbrechen-Funktion als solche:

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

Aber das funktioniert nicht - noch nichts öffnet, wenn ich auf den Link klicken, die es öffnen sollte. Gibt es eine Möglichkeit, das Dialogfeld einfach neu zu erstellen? Irgendwelche Ideen, wo ich den Dialog neu initialisieren sollte, wenn der einzige Ort, wo ich es jetzt mache, auf document.ready ist?

Danke.

Antwort

4

Sie können setDialogWindows in einen Click-Handler bewegen und drehen AutoOpen- zu wahren, so etwas wie:

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

hierzu den Dialog auf jedem Klick wird initialisiert, und es zerstören, wenn es geschlossen ist.

Sie können auch separate Dialoge öffnen, einen mit der Drag & Drop-Funktion und einen anderen ohne ihn.

Verwandte Themen