2014-09-04 71 views
0

看起來像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">&times;</button> 
     <h4 class="modal-title">Modal title</h4> 
     </div> 
     <div class="modal-body"> 
     <p>One fine body&hellip;</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錯誤?或者它是一個錯誤,我做錯了什麼? (我不是一個引導大師呢。)

+0

如果它只是在1.7.1發生,那麼我只想使用jQuery的新版本。您決定在您的網站上使用哪個版本的jQuery,它不會因用戶而異。 – Dan 2014-09-04 18:31:32

+0

我在jQuery 1.8.3上大量使用Bootstrap 3。我沒有遇到任何問題。 jQuery 1.9棄用了一些你可能需要的東西,所以試試1.8分支。 – isherwood 2014-09-04 18:34:33

回答

2

由於引導v3.0.0,最低jQuery的版本根據是1.9.0他們bower.json

"dependencies": { 
    "jquery": ">= 1.9.0" 
    } 

您可以從包括哪些內容的節得到這個自己文檔:

http://getbootstrap.com/getting-started/#whats-included

+0

而且我們還提及並鏈接到http://getbootstrap.com/javascript/#js-individual-compiled – cvrebert 2014-09-05 00:22:27

+0

你沒有在技術上回答我的問題,因爲我更加好奇**爲什麼**這件事發生的比如何要解決這個問題。不過,這是一個合理的解決方案。 – coderMe 2014-09-06 04:37:59