Twitterのブートストラップで、 modals のドキュメントを見てください。モーダルのcloseイベントを聞いて関数を実行する方法があるかどうか私は理解できませんでした。
例えば例としてこのモーダルを取りましょう:
<div class="modal-header">
<button type="button" class="close close_link" data-dismiss="modal" aria-hidden="true">×</button>
<h3>Modal header</h3>
</div>
<div class="modal-body">
...
</div>
<div class="modal-footer">
<a href="#" class="btn close_link" data-dismiss="modal">Close</a>
</div>
data-dismiss="modal"
のため、上のXボタンと下の閉じるボタンの両方でモーダルを隠したり閉じたりできます。それで、どういうわけかそれに耳を傾けることができたらどうだろうか?
代わりに、私はこのように手動でそれを行うことができます、私は思います...
$("#salesitems_modal").load(url, data, function() {
$(this).modal('show');
$(this).find(".close_link").click(modal_closing);
});
どう思いますか?
Bootstrap 3 と Bootstrap 4 のドキュメントでは、使用できる2つのイベントを参照しています。
hide.bs.modal:このイベントは、hideインスタンスメソッドが呼び出された直後に発生します。
hidden.bs.modal:このイベントは、モーダルがユーザーから隠され終わったときに発生します(CSSの遷移が完了するのを待ちます)。
そしてそれらを使用する方法の例を提供します:
$('#myModal').on('hidden.bs.modal', function () {
// do something…
})
ブートストラップのドキュメント はあなたが使うことができる二つのイベントを参照しています。
hide:このイベントは、hideインスタンスメソッドが呼び出された直後に発生します。
hidden:このイベントはモーダルがユーザーから隠されたときに発生します(CSSの遷移が完了するのを待ちます)。
そしてそれらを使用する方法の例を提供します。
$('#myModal').on('hidden', function () {
// do something…
})
あなたのモーダルdivが動的に追加されているなら、(ブートストラップ3のために)を使ってください
$(document).on('hide.bs.modal','#modal-id', function () {
alert('');
//Do stuff here
});
これは動的でないコンテンツにも有効です。
モーダルイベントには2つのペアがあります。1つは「表示」と「表示」、もう1つは「非表示」と「非表示」です。名前からわかるように、hideイベントは、右上隅にある×印をクリックする、閉じるボタンをクリックするなど、モーダルが閉じる直前になると発生します。隠されている間は、モーダルが実際に近い後に発生します。あなたはこれらの出来事をあなた自身でテストすることができます。例:
$( '#modal' )
.on('hide', function() {
console.log('hide');
})
.on('hidden', function(){
console.log('hidden');
})
.on('show', function() {
console.log('show');
})
.on('shown', function(){
console.log('shown' )
});
そして、あなたの質問に関しては、私はあなたがあなたのモーダルの 'hide'イベントに耳を傾けるべきだと思います。
ブートストラップモーダルイベント:
<script type="text/javascript">
$("#salesitems_modal").on('hide.bs.modal', function () {
//actions you want to perform after modal is closed.
});
</script>
これが役立つことを願っています。