为什么在打开模式内部的折叠时启动引导模式回调



我注意到bootstrap 2.3.2中有一个奇怪的行为,在那里我在一个模态内有一个折叠面板。因此,当collapse打开时,模式回调(例如show,如图所示)也会被触发。无法弄清楚为什么会发生这种情况。请在此处查看http://www.bootply.com/WHBcMZ6puA#

是虫子吗?

这是一个已知的问题。人们写了一个解决方案,但它不起作用。

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

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

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

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

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

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

最新更新