为什么在打开模态内部崩溃时触发模式回调

时间:2015-11-17 13:25:37

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

我注意到bootstrap 2.3.2中有一个奇怪的行为,我在模态中有一个折叠面板。因此,当打开崩溃时,模态回调(例如show,show)也会被触发。无法弄清楚为什么会这样。 点击http://www.bootply.com/WHBcMZ6puA#

这是一个错误吗?

2 个答案:

答案 0 :(得分:2)

这是一个已知的issue。人们写了一个解决方案,但它没有用。

$('#myModal').find('.accordion-toggle').on('hidden', function (event) {
    event.stopPropagation()
});    

它的命名空间问题,已在bootstrap 3版本中解决。我的建议,切换到bootstrap v3。

答案 1 :(得分:0)

我认为事件传播导致了这个问题。可能(我没有检查过Bootstrap的代码)模式的设计方式是,如果DOM内的某个元素接收到一个事件,就会执行'show'回调,有效地显示模态弹出窗口。

如果阻止事件传播,则永远不会执行回调。使用它,例如:

$('#myModal').find('.accordion-toggle').click(function (e) {
  e.preventDefault();
  e.stopPropagation();
  console.debug('blocked propagation!');
});

希望它有助于解释。我的Bootply分叉在这里:http://www.bootply.com/cyvZEYufre