我曾经使用过JQuery UI的对话框,它有open
选项,您可以在其中指定一些Javascript代码,以便在打开对话框后执行。我会使用该选项使用我的函数在对话框中选择文本。
现在我想用bootstrap的模态做到这一点。以下是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!");
});
答案 0 :(得分:274)
您可以根据需要使用shown event / show事件:
$( "#code" ).on('shown', function(){
alert("I want this to appear after the modal has opened!");
});
演示:Plunker
对于Bootstrap 3.0,您仍然可以使用显示的事件,但您可以像这样使用它:
$('#code').on('shown.bs.modal', function (e) {
// do something...
})
“事件”下的
答案 1 :(得分:69)
无效..请改用<{1}}
// FOR SHOWING
$(window)
//隐藏
$(window).on('shown.bs.modal', function() {
$('#code').modal('show');
alert('shown');
});
答案 2 :(得分:8)
Bootstrap模式公开事件。听取像这样的shown
事件
$('#my-modal').on('shown', function(){
// code here
});
答案 3 :(得分:8)
您可以使用show
代替shown
来使函数在模态打开之前加载,而不是在模态打开之后加载。
$('#code').on('show.bs.modal', function (e) {
// do something...
})
答案 4 :(得分:0)
如果有人仍然有问题,那么唯一的事情就是使用(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
});
});
答案 5 :(得分:-3)
您可以使用belw代码显示和隐藏引导程序模型。
$('#my-model').on('shown.bs.modal', function (e) {
// do something here...
})
如果你想隐藏模型,那么你可以使用下面的代码。
$('#my-model').on('hidden.bs.modal', function() {
// do something here...
});
我希望这个答案对你的项目有用。