bootstrap手风琴 - 如果点击打开的面板,请不要塌陷

时间:2017-04-24 16:03:59

标签: twitter-bootstrap collapse

我使用以下命令设置bootstrap以隐藏当前打开的面板:

$('.collapse').on('show.bs.collapse', function () {
   $('.in').collapse('hide');
});

我想对此进行扩展,以便在您单击当前打开的面板时没有任何反应,即打开的面板在单击时应保持打开状态。它只应在单击其他折叠面板时折叠。

我试过这样,但它不起作用:

$('.collapse').on('show.bs.collapse', function () {
  $('.in').not(this).collapse('hide');
});

这有可能吗?

JSFiddle

2 个答案:

答案 0 :(得分:0)

Bootstrap在'中添加了课程'要打开面板,您可以使用它来检测面板已经打开的天气,如果是这样,那么您可以通过调用event.stopPropagation()来跳过折叠,您可以阅读有关stopPropagation here的更多信息。

$('.panel-title > a[data-toggle="collapse"]').click(function(e){
  target = $(this).attr('href')
  if ($(target).hasClass('in')) {
    e.preventDefault(); // to stop the page jump to the anchor target.
    e.stopPropagation()
  }
})

jsfiddle

答案 1 :(得分:0)

根据@Sammy答案-对于Bootstrap 4.x,您必须进行更改

    if ($(target).hasClass('in'))

    if ($(target).hasClass('show'))