私は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(); });
}
});
<a href="next.html" data-toggle="modal">Add Record</a>
next.htmlファイルコード
<div class="modal fade" id="compose-modal" role="dialog" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h4 class="modal-title">First Window</h4>
</div>
<form action="#" method="post">
<div class="modal-footer clearfix">
<button type="button" data-dismiss="modal">Discard</button>
<button type="submit">Submit</button>
<a href="next2.html" data-toggle="modal" >Next</a>
</div>
</form>
</div>
</div>
</div>
より更新された答えは以下にあります: https://stackoverflow.com/a/44391959/1004312
別のモーダルからモーダルを開き、最初のモーダルを閉じています。 Bootstrap 3を使用している場合、次のことができます。
デモ: http://jsbin.com/venek/1/edit
最初のモーダルに次のモーダルへのリンクを配置します(#modal-1&#modal-2はidの例です)
<a href="#modal-2" data-toggle="modal" data-dismiss="modal">Next</a>
2番目のモーダルには、最初のモーダルへのリンクを配置します。
<a href="#modal-1" data-toggle="modal" data-dismiss="modal">Previous</a>
このメソッドは、他のメソッドに存在するパディングとスクロールの問題を無効にし(下を参照)、Bootstrap Modals。を使用して必要な機能を実現する最もクリーンな方法です。
インライン
<a onclick="$('.modal-to-close').one('hidden.bs.modal', function() { $('.modal-to-open').modal('show'); }).modal('hide');">Open Modal</a>
全脂肪:
<script>
$(function () {
$('.selector').click(function() {
$('.modal-to-close').one('hidden.bs.modal', function() {
$('.modal-to-open').modal('show');
}).modal('hide');
});
});
</script>
<a class="selector">Open Modal</a>
ビーストモード:
<script>
$(function () {
$('[data-bm-close][data-bm-open]').on('click', function () {
var $this = $(this);
$($this.data('bm-close')).one('hidden.bs.modal', function () {
$($this.data('bm-open')).modal('show');
}).modal('hide');
});
});
</script>
<a data-bm-close=".modal-to-close" data-bm-open=".modal-to-open">Open Modal</a>
ヒント:これを複数回行う必要がない限り、Inline バージョン。
他の回答に存在する問題
モーダルの高さが画面よりも高い場合、問題が発生します。data-dismiss= "modal"がbodyタグからmodal-openクラスを削除するため、スクロールするとモーダルになりますスクロールしませんが、色あせた背景が動き始めます。これは悪いです。// Deepak Yadav
<a data-toggle="modal" data-target="#open1" data-dismiss="modal">OPEN 1</a>
<a data-toggle="modal" data-target="#open2" data-dismiss="modal">OPEN 2</a>
$('.modal).on('show.bs.modal',function(){
setTimeout(function(){
$('body').addClass('modal-open');
},800);
});
@Deepak Yadavの問題:data-dismiss = "modal"は、bodyタグからmodal-openクラスを削除します。JSには1つのソリューションがあります。
クラスを次の前のリンクに追加します
<a class="NeXTSTEP" href="#modal-2" data-toggle="modal" data-dismiss="modal">Next</a>
<a class="previousStep" href="#modal-1" data-toggle="modal" data-dismiss="modal">previous</a>
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;}
u close bootstrap 2番目のポップアップ、2番目のクローズのみ、最初は開いているとき
そのため、bootstrap最初のモーダルIDで2番目のポップアップ閉じるボタンを使用できます
例
<button type="button" class="btn btn-default" data-toggle="modal" data-target="#myModal1" data-dismiss="modal">Close</button>