看起来 Bootstrap 在调用 .modal('show')
函数时生成了多个重复事件。我预计将调用单个 'shown.bs.modal'
事件,但实际上,我从单个事件处理程序中获取了 3-7 个事件日志。
从 .modal
div 中删除 .fade 类可以解决此问题,并且该事件仅触发一次。
HTML:
<div class="modal fade" id="cmsDialog">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">×</button>
<h4 class="modal-title">Modal title</h4>
</div>
<div class="modal-body">
<p>One fine body…</p>
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div><!-- /.modal -->
JavaScript:
$(document).ready(function() {
$('#cmsDialog').on('shown.bs.modal', function(e) {
console.log('modal shown!');
});
$('.cmsZoneToolbar').find('.cmsZoneEdit').click(function(e){
openeditscreen();
return false;
});
});
openeditscreen = function() {
$('#cmsDialog').find('.modal-body').html('MODAL CONTENT');
$('#cmsDialog').modal('show');
}
JS Fiddle(请注意,我只能使用 jQuery 1.7.1 复制此内容): http://jsfiddle.net/mborn/z0zstu0o/3/
编辑:更新我的 jQuery 版本是理想的解决方案吗?似乎没有其他记录此错误的案例 - 这是 jQuery 错误还是 Bootstrap 错误?或者这根本就是一个错误,我做错了什么吗? (我还不是 Bootstrap 大师。)
最佳答案
自 Bootstrap v3.0.0
起,根据其 bower.json
,最低 jQuery 版本为 1.9.0
"dependencies": {
"jquery": ">= 1.9.0"
}
您可以从其文档的包含内容部分获取此信息:
关于javascript - 重复模态显示事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25672563/