我注意到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