Jquery UI关闭对话框并打开新对话框

这个概念看起来很简单,但我在执行它时遇到了很多问题。

我需要关闭当前对话框并打开另一个对话框。 它会关闭#imageModal,但不会打开#uploadModal。

有什么建议?

编辑:添加了#uploadModal

$("#imageModal").dialog({ autoOpen: false, height: 500, width: 500, modal: true, closeOnEscape: true, resizable: false, buttons: { 'Upload Image': function() { // CLOSE 1 DIALOG AND OPEN ANOTHER $(this).dialog('close'); $('#uploadModal').dialog('open'); }, Cancel: function() { $(this).dialog('close'); } }, close: function() { $(this).dialog('close'); } }); $("#uploadModal").dialog({ autoOpen: false, height: 500, width: 500, modal: true, closeOnEscape: true, resizable: false, buttons: { 'Upload Image': function() { }, Cancel: function() { $(this).dialog('close'); } }, close: function() { $(this).dialog('close'); } }); 

使用对话框完成任务时执行的回调函数。

 [...] 'Upload Image': function() { // CLOSE 1 DIALOG AND OPEN ANOTHER $(this).dialog('close', function() { $('#uploadModal').dialog('open'); }); }, [...] 

嗯,你改变了关闭和打开的顺序吗? 我们说,首先打开下一个对话框,然后关闭第一个对话框?

1 – 这个;

 // CLOSE 1 DIALOG AND OPEN ANOTHER $(this).dialog('close'); $('#uploadModal').dialog('open'); 

2 – 致:

 // CLOSE 1 DIALOG AND OPEN ANOTHER $('#uploadModal').dialog('open'); $(this).dialog('close'); 
 $(this).dialog('close'); $('#uploadModal').dialog('open'); 

这实际上适合我(jquery 1.7 jquery-ui 1.8)。 建议的答案仅关闭对话框,不会打开新对话框。

尝试在setTimeout中包装“uploadModal”打开调用。

 'Upload Image': function() { // CLOSE 1 DIALOG AND OPEN ANOTHER $(this).dialog('close'); setTimeout(function () { $('#uploadModal').dialog('open'); }, 100); }, 

您还可以通过..绑定到对话框的close事件。

 $("#uploadImage").bind("dialogClose", function () { // code goes here }); 

但我认为第一种方法可以满足您的需求。

是的,这已经在这里了一点。 我正在寻找如何解决同样的问题。 我发布了更多代码然后需要,所以你可以看到最新情况。 我使用了当前对话框的名称来关闭以及要打开的新名称。 作品…

 //============= User Modal ===============================// $( "#dialog-message" ).dialog({ autoOpen: false, modal: true, resizable: false, width: 650, buttons: { Add: function() { $('#dialog-message').dialog( "close" ); $('#dialog-message3').dialog( "open" ); } } }); $( "#opener" ).click(function() { $( "#dialog-message" ).dialog( "open" ); return false; }); //========== Add User Modal ============================ // $( "#dialog-message3" ).dialog({ autoOpen: false, modal: true, resizable: false, width: 250, buttons: { Save: function() { $( '#dialog-message3' ).dialog( "close" ); } } });