javascript - 如果再次单击父元素,则保持未折叠的元素打开

标签 javascript css html twitter-bootstrap

首先对糟糕的措辞表示歉意,我无法描述问题。

目前我在水平行中有一系列按钮,点击一个按钮会显示它下面的相关内容,点击另一个按钮会折叠当前内容并显示新内容(使用'data-parent'属性).我希望它起作用,例如,如果单击按钮 3 并显示它的内容,然后用户再次单击按钮 3,而不是内容折叠,我希望它保留在屏幕上。目前它的工作方式是,如果显示按钮 3 的内容并再次单击按钮 3,则该元素会折叠,我们只剩下一行按钮。我已经尝试过 '.collapse("show")' 方法,但我很难实现它(甚至不确定是否可以使用此方法)。这是相关的代码:

<div class ="container" id="content">

    <button class="btn btn-info" data-toggle="collapse" data-target="#0" data-parent="#content">0</button>
    <button class="btn btn-info1" data-toggle="collapse" data-target="#1" data-parent="#content">1</button>
    <button class="btn btn-info2" data-toggle="collapse" data-target="#2" data-parent="#content">2</button>
    <button class="btn btn-info3" data-toggle="collapse" data-target="#3" data-parent="#content">3</button>

    <div class="panel">
        <div id="0" class="collapse in">
            Button 0's content
        </div>

        <div id="1" class="collapse">
            Button 1's content    
        </div>

        <div id="2" class="collapse">
            Button 2's content    
        </div>

        <div id="3" class="collapse">
            Button 3's content    
        </div>
    </div>
</div>

如有任何帮助,我们将不胜感激。

最佳答案

不知道这个解决方案是否会让你满意,但你可以像那样阻止它

例如

$('.btn').click(function(e) {
target = $(this).data('target');
if($(target).is(':visible')){
    return false;
}
});

在这种情况下,如果您单击“button1”,它将折叠正确的 div,如果您再次单击它,则不会发生任何事情。但是,单击另一个按钮将折叠另一个 div。

关于javascript - 如果再次单击父元素,则保持未折叠的元素打开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37714317/

相关文章:

javascript - 在 jQuery .load 事件上交换 CSS 类

java - 将数据从 select 标签发送到 servlet

css - 底部文本对齐或菜单

html - 左 : initial doesn't work in internet explorer

html - 用 div 填充剩余高度(第一个 div 的滚动条和可变高度)

html - 内部 div 的高度大于容器

javascript - 如何为我的 Draft JS Editor 边框提供焦点效果?

javascript - fizz buzz 的 if-else 语句中的顺序是否重要?

html - 垂直对齐列表

css - 即/: wrong z-index for hover-effect