如何防止单击标题中的按钮时手风琴切换?

How to prevent accordion from toggling when button in header is clicked?

提问人:Nate 提问时间:6/29/2014 更新时间:6/29/2014 访问量:16991

问:

我正在使用 bootstrap 的手风琴类,并希望在标题中包含无需切换手风琴即可单击的按钮。下面是示例 HTML:

<div class="body">
    <div class="panel panel-default" style="width: 80%">
        <div class="panel-heading" data-toggle="collapse" data-target="#container1" style="cursor: pointer;">
            <h4 class="panel-title" style="display: inline-block;">
               title
            </h4>
        <div style="float: right; width: 130px; text-align: right;"><span style="color: red;">test</span></div>
            <button type="button" class="btn btn-xs btn-primary" style="float: right;" onclick="foo(event);">Button</button>
    </div>
    <div id="container1" class="panel-collapse collapse">
        <div class="panel-body">
            panel content
        </div>
    </div>
    </div>
</div>

我尝试使用处理程序来阻止手风琴触发,但它不起作用:onclicke.preventDefault();

window.foo = function(e) {
    console.log("foo");
    $(".body").append("<br>foo");
    e.preventDefault();
}

JSFIDDLE的

如何防止单击按钮时触发手风琴?

javascript jquery twitter-bootstrap twitter-bootstrap-3

评论

0赞 Don Srinath 6/29/2014
看看这个 stackoverflow.com/questions/20545477/...

答:

20赞 dfsq 6/29/2014 #1

您想要停止事件冒泡,因此使用 stopPropagation

window.foo = function(e) {
    e.stopPropagation();
}

演示:http://jsfiddle.net/Bye8K/3/

评论

0赞 Kyrei 7/23/2020
请注意,对于使用按钮激活引导模式(至少在 React 中)的人来说,您必须停止在 onClick 模态中传播,否则单击模态也会展开/折叠手风琴。