从另一个模态打开一个模态并关闭第一个(启动)模态

我正在使用Bootstrap Modal Window插件,它的工作正常,但我想打开另一个模型窗口,当我点击下一个并关闭第一个。 我该怎么做?

$('[data-toggle="modal"]').click(function(e) { e.preventDefault(); var url = $(this).attr('href'); if (url.indexOf('#') == 0) { $(url).modal('open'); } else { $.get(url, function(data) { $(data).modal(); }).success(function() { $('input:text:visible:first').focus(); }); } }); Add Record 

https://stackoverflow.com/questions/25319034/open-a-modal-from-another-modal-and-close-the-first-launching-modal/next.html文件代码

  

更新的答案如下: https : //stackoverflow.com/a/44391959/1004312

您正在从另一个模态打开模态并关闭第一个模态。 如果您使用的是Bootstrap 3,则可以执行以下操作:

演示: http : //jsbin.com/venek/1/edit

在第一个模态中将链接放到下一个模态(#modal-1&#modal-2是示例id)

  Next 

在第二个模态中,将链接放到第一个模式中:

  Previous 

演示: http : //jsbin.com/venek/1/edit

大家好,退后一步; 我有这个。

此方法否定了其他方法中存在的填充和滚动问题(参见下图),并且[IMO]是使用Bootstrap Modals实现所需function的最简洁方法。

排队

 Open Modal 

全脂:

  Open Modal 

野兽模式:

  Open Modal 

提示:除非您需要多次执行此操作,否则我建议您使用Inline版本。


其他答案中出现的问题

当你的模态比你的屏幕更高时,它会产生一个问题。 由于data-dismiss =“modal”从body标签中删除了modal-open类。 因此,滚动时,模态不会滚动,但褪色的背景会开始移动。 这很糟糕。 //迪帕克亚达夫

可以确认@Deepak报告的问题。 此外,每次从另一个内部打开一个模态时,页面将增加并强制执行“padding-right”+ 17px(模态可能需要比页面更高才能发生这种情况)。 这适用于此页面上的几乎所有方法。 请参阅我的答案,了解避免这些问题的方法。 //马修哈德森

 OPEN 1 OPEN 2 $('.modal).on('show.bs.modal',function(){ setTimeout(function(){ $('body').addClass('modal-open'); },800); }); 

@Deepak Yadav问题:data-dismiss =“modal”从body标签中删除modal-open类可能有一个JS解决方案:

将类添加到下一个上一个链接

  Next previous 

JS:

 var $body = $('body') $("a.nextStep").click(function(){ $body.addClass('modal1-on') }); $("a.previousStep").click(function(){ $body.addClass('modal2-on') }); $('#modal-1').on('hidden.bs.modal', function () { $body.removeClass('modal2-on') }); $('#modal-2').on('hidden.bs.modal', function () { $body.removeClass('modal1-on') }); 

然后css:

  body.modal1-on, body.modal2-on {overflow: hidden;} 

当你关闭bootstrap第二个弹出窗口时,只有第二个关闭,第一个打开

为此我们可以在bootstrap第一个模态id上使用第二个弹出关闭按钮