javascript - 面板 : Both glyphicons toggle when inner panel is clicked 中的 Bootstrap 面板

标签 javascript jquery html css twitter-bootstrap

我有一个 Bootstrap 面板,里面有另一个面板。两者在面板标题中都有一个字形图标。默认情况下,面板是折叠的。当面板折叠时,将设置 glyphicon-unchecked。当我点击这个字形图标时,面板展开。我为此编写了以下 JavaScript 函数:

$('#outerPanelGlyph').click(function () {
    $('#outerPanelBody').collapse('toggle');
});

这工作正常。当我单击它时,外面板未折叠但内面板仍折叠。我写了方法,所以字形在展开时与“glyphicon-check”交换,反之亦然:

$('#outerPanelBody').on('show.bs.collapse', function () {
    $('#outerPanelGlyph').removeClass("glyphicon-unchecked").addClass("glyphicon-check");
});

$('#outerPanelBody').on('hide.bs.collapse', function () {
    $('#outerPanelGlyph').removeClass("glyphicon-check").addClass("glyphicon-unchecked");
 });

我为内部面板编写了与上面完全相同的代码。当我单击内部面板的字形时,内部面板展开并交换字形。但是,当我再次单击内部面板的字形时,内部面板会折叠,内部面板和外部面板的字形都会交换。我只想在单击内部面板的字形图标时交换内部面板字形。

这是 HTML 代码:

<div class="panel panel-dark" id="outerPanel">
    <div class="panel-heading">
        <span class="pull-right"><i class="glyphicon glyphicon-unchecked" id="outerPanelGlyph"></i></span>
    </div>
        ....some code....
    <div class="collapse panel-body" id="outerPanelBody">
        <div class="panel panel-default" id="innerPanel">
            <div class="panel-heading panel-dark">
                <span class="pull-right"><i class="glyphicon glyphicon-unchecked" id="innerPanelGlyph"></i></span>
            </div>
            <div class="collapse panel-body" id="innerPanelBody">
                ....some code....
            </div>
        </div>
    </div>
</div>

最佳答案

当您单击内部面板时,您还会单击外部面板,因此您需要停止内部面板单击事件中的传播,否则两个事件都将被触发。

$('#outerPanelBody').on('show.bs.collapse', function (e) {
    e.stopPropagation();
    $('#outerPanelGlyph').removeClass("glyphicon-unchecked").addClass("glyphicon-check");
});

$('#outerPanelBody').on('hide.bs.collapse', function (e) {
    e.stopPropagation();
    $('#outerPanelGlyph').removeClass("glyphicon-check").addClass("glyphicon-unchecked");
});

关于javascript - 面板 : Both glyphicons toggle when inner panel is clicked 中的 Bootstrap 面板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34672661/

相关文章:

javascript - PrettyPhoto 内联内容 div 隐藏显示

javascript - 脚本 438 : Object doesn't support property or method 'join'

javascript - 获取 Href 的集合

javascript - 如果前一列有行跨度,则将类设置为下一列

javascript - 带有对象数组的 mustache 模板

javascript - 简单的 Jquery 切换不起作用

javascript - jquery TimeCircles 卡住了

php - 如何将 View 发送回 Laravel 中的 ajax

html - 导航 :hover CSS not working in IE but does in JSFiddle

html - 在菜单项的子项中添加大型菜单(容器宽度)