私は以前はJQuery UIのダイアログを使用していましたが、ダイアログが開かれたときに実行するJavascriptコードを指定できるopen
オプションがありました。私は持っている機能を使用してダイアログ内のテキストを選択するためにそのオプションを使用したでしょう。
今私はブートストラップのモーダルを使用してそれをやりたいです。以下はHTMlコードです。
<div id="code" class="modal hide fade">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3>Modal header</h3>
</div>
<div class="modal-body">
<pre>
print 'Hello World'
そしてモーダルを開くボタンに関しては:
<a href="#code" data-toggle="modal" class="btn code-dialog">Display code</a>
ボタンのonclickリスナーを使おうとしましたが、警告メッセージが表示されました 前 /モーダルが表示されました:
$( ".code-dialog" ).click(function(){
alert("I want this to appear after the modal has opened!");
});
必要なものに基づいて、 表示イベント / showイベントを使用できます。
$( "#code" ).on('shown', function(){
alert("I want this to appear after the modal has opened!");
});
デモ: プランカー
Bootstrap 3.0では、表示されているイベントをまだ使用できますが、次のように使用します。
$('#code').on('shown.bs.modal', function (e) {
// do something...
})
「イベント」の下のBootstrap 3.0のドキュメント を参照してください。
動作しません。代わりに$(window)
を使用します
//ショーン用
$(window).on('shown.bs.modal', function() {
$('#code').modal('show');
alert('shown');
});
//非表示
$(window).on('hidden.bs.modal', function() {
$('#code').modal('hide');
alert('hidden');
});
モーダルオープンの直後ではなく、モーダルオープンの直前に関数をロードするために、show
の代わりにshown
を使用することができます。
$('#code').on('show.bs.modal', function (e) {
// do something...
})
ブートストラップモーダルはイベントを公開します。このようなshown
イベントを聞いてください
$('#my-modal').on('shown', function(){
// code here
});
誰かがまだ問題を抱えている場合、(loaded.bs.modal)を使用して私にとって完璧に機能する唯一のもの:
$('#editModal').on('loaded.bs.modal', function () {
console.log('edit modal loaded');
$('.datepicker').datepicker({
dateFormat: 'yy-mm-dd',
clearBtn: true,
rtl: false,
todayHighlight: true,
toggleActive: true,
changeYear: true,
changeMonth: true
});
});