Hi,
I'm creating three modal dialogs on page load (using $(document).ready(function() {
). I create these dialogs by calling a setDialogWindows()
method, and pass it the div for the dialog. Dialog creation code is below:
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');
}
}
});
}
I'll spare you the dialog html, but there is some jquery drag/drop functionality that I want to be completely reset when the user clicks Cancel. Hence the $(this).dialog('destroy')
. However, when I click the link again to open the dialog box, it doesn't show up. I realize this is because I haven't re-inited it, but I really can't do that because the dialogs are created on page load. I tried adding a recursive call of sorts to the Cancel function as such:
Cancel: function() {
$(this).dialog('destroy');
setDialogWindows($element);
},
But that doesn't work -- still nothing opens when I click the link that should open it. Is there a way to just recreate the dialog box? Any ideas on where I should be re-initializing the dialog if the only place I do it now is on document.ready?
Thanks.