我正在尝试使用5个jQuery Dialog模式创建类似向导的体验。我想从打开第二个的第一个模式开始一个新模态,但是关闭第一个模态。与第三,第四和第五相同。
我可以打开嵌套在其他模态中的模态,但是当下一个模态打开时,前一个模态不会关闭。最后,我有5个窗口相互打开。
这是我用来打开5个模态中的两个的代码(其余的将按顺序使用相同的逻辑:
<script>
$(function() {
$( "#modal_1" ).dialog({position:['middle',60],
open: function(event, ui) {
dialogClass: 'ui-widget-shadow',
modal: true,
autoOpen: false,
width: '950px',
close: function(ev, ui) {$(this).close();}
});
$( ".modal_1open" ).click(function() {
$( "#modal_1" ).dialog( "open" );
return false;
});
$( ".btnNext" ).click(function(){
$('.ui-dialog-content').dialog( "close" );
})
});
</script>
<script>
$(function() {
$( "#modal_2" ).dialog({position:['middle',60],
open: function(event, ui) {
dialogClass: 'ui-widget-shadow',
modal: true,
autoOpen: false,
width: '950px',
close: function(ev, ui) {$(this).close();}
});
$( ".modal_2open" ).click(function() {
$( "#modal_2" ).dialog( "open" );
return false;
});
$( ".btnNext" ).click(function(){
$('.ui-dialog-content').dialog( "close" );
})
});
</script>
以下是html的示例:
<a class="button btnNext">Continue</a> <!--this is the button inside the modal that is supposed to fire the next modal-->
<div style="display:none" id="modal_1" title="Login">
<!--#include file="modal_1.asp"-->
</div>
<div style="display:none;" id="modal_2" title="Page Two Title">
<!--#include file="modal_2.asp"-->
</div>
我想我可以将close函数绑定到下一个的开头,但我不知道如何。任何帮助?
答案 0 :(得分:1)
我为你的代码节食并做了一些测试。 IMO你有错误分配的选项。 close:用于事件处理程序,而不是按钮。 使用按钮字段定义按钮。点击关闭对话框并打开下一个...
$(this).dialog("close");
$("#modal_2").dialog("open");
我的简单版本如下:
$(function() {
$("#modal_1").dialog({
modal: true,
autoOpen: true,
buttons: [{text: "Next",click: function() {
$(this).dialog("close");
$("#modal_2").dialog("open");
}
}]
});
$("#modal_2").dialog({
modal: true,
autoOpen: false,
buttons: [{text: "Next",click: function() {
$(this).dialog("close");
$("#modal_1").dialog("open");
}}]
});
});
我在这里测试过: http://jsfiddle.net/JmgKS/8/