Jquery UI关闭对话框和打开新对话框
这个概念看起来很简单,但我在执行它时遇到了很多问题。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');
});
},
[...]
感谢您的建议,但解决方案无法正常工作。它关闭了当前对话框,但没有打开#uploadModal。我尝试了一个简单的警报(“测试”);它也没有工作。 – 2011-04-19 15:01:10
它在调试控制台中说了些什么?另一件事,你是否宣布$(document).ready(function(){...});在所有这些指示之前? – Cristian 2011-04-19 15:08:55
是的,我宣布$(function(){...});在一切之前。 #imageModal完全打开和关闭,但不会关闭#uploadModal,并且在与此相关的调试器日志中没有错误。 – 2011-04-19 15:38:01
嗯,你有没有改变关闭和打开的顺序?我们说,首先打开下一个对话框,然后关闭第一个对话框?
1 - This;
// 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);
},
您也可以通过绑定到对话框的关闭事件..
$("#uploadImage").bind("dialogClose", function() {
// code goes here
});
,但我认为首先将正常工作,你想要的东西。
是的,这已经在这里了一下。我正在寻找如何解决同样的问题。我发布了更多需要的代码,以便您可以看到发生了什么。我使用当前对话框的名称关闭并打开新的名称。 Works ...
//============= 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");
}
}
});
我们可以看到#uploadModal的HTML/JS吗? :)另外,请确保$(this)不是您单击的按钮,而是调用.dialog('close')事件时的对话框本身... – pixelbobby 2011-04-19 14:50:12
@pixelbobby添加了#uploadModal html和$(this) .dialog('close')正常工作,它只是不打开#uploadModal,谢谢! – 2011-04-19 14:57:41
Thx。看看你的代码,Christian的建议似乎可以奏效。确保你将它标记为答案,如果是这种情况:) – pixelbobby 2011-04-19 15:02:27