我正在使用带远程选项的模态对话框:
<a target="profile-banner" data-target="#edit-slide-dlg" href="/Banner/SlideEditModal/1/1"
data-toggle="modal" class="banner-slide-control">Edit</a>
Run Code Online (Sandbox Code Playgroud)
哪里:
<div id="edit-slide-dlg" class="modal fade" tabindex="-1"></div>
Run Code Online (Sandbox Code Playgroud)
另外,我正在监听使用event.target属性的shown.bs.modal事件:
$("body").on("shown.bs.modal", function (event) {
// do something with event.target
}
Run Code Online (Sandbox Code Playgroud)
我第一次打开对话框时没有触发此事件的原因.它只是第二次被解雇了.我试图浏览bootstrap脚本并找到此代码(请参阅我的评论):
var e = $.Event('shown.bs.modal', { relatedTarget: _relatedTarget })
transition ?
that.$element.find('.modal-dialog') // wait for modal to slide in
.one($.support.transition.end, function () {
that.$element.focus().trigger(e) //THIS LINE NEVER EXECUTED AT FIRST DIALOG OPENING
})
.emulateTransitionEnd(300) :
that.$element.focus().trigger(e)
Run Code Online (Sandbox Code Playgroud)
所以,我关闭转换作为一种解决方法,它使事件第一次被触发,但是,event.target是空字符串.第二次,event.target包含适当的对话框HTML.我的代码或引导程序有问题吗?
根据文件:
http://getbootstrap.com/javascript/#modals
它应该触发方法"show.bs.dropdown"和"shown.bs.dropdown".但它没有:
HTML:
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">Hello world</div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
jQuery的:
// show.bs.modal doesn't work either
$('#myModal')
.modal('show')
.on('show.bs.modal', function() {
alert('shown baby!');
});
Run Code Online (Sandbox Code Playgroud)