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.