看起來像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小提琴(請注意,我只能這樣使用jQuery 1.7.1複製): http://jsfiddle.net/mborn/z0zstu0o/3/
編輯:正在更新我的jQuery的理想解決方案?似乎沒有其他記錄在案的這個bug - 這是一個jQuery錯誤,或Bootstrap錯誤?或者它是一個錯誤,我做錯了什麼? (我不是一個引導大師呢。)
如果它只是在1.7.1發生,那麼我只想使用jQuery的新版本。您決定在您的網站上使用哪個版本的jQuery,它不會因用戶而異。 – Dan 2014-09-04 18:31:32
我在jQuery 1.8.3上大量使用Bootstrap 3。我沒有遇到任何問題。 jQuery 1.9棄用了一些你可能需要的東西,所以試試1.8分支。 – isherwood 2014-09-04 18:34:33