重复的模态显示事件

时间:2014-09-04 18:24:43

标签: javascript jquery twitter-bootstrap twitter-bootstrap-3

看起来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 Fiddle(请注意,我只能使用jQuery 1.7.1复制它): http://jsfiddle.net/mborn/z0zstu0o/3/

编辑:更新我的jQuery版本是理想的解决方案吗?似乎没有其他记录的此错误案例 - 它是一个jQuery错误,还是一个Bootstrap错误?或者它是一个错误,我做错了什么? (我还不是Bootstrap大师。)

1 个答案:

答案 0 :(得分:2)

自Bootstrap v3.0.0以来,根据bower.json

,最小jQuery版本为1.9.0
  "dependencies": {
    "jquery": ">= 1.9.0"
  }

您可以从文档的内容部分了解到这一点:

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