Bootstrap:重置按钮 Link 活动状态恢复正常

Bootstrap: Reset Button Link Active State Back To Normal

这是 fiddle

我的行为几乎在做它需要做的事情。

悬停效果很好,单击时按钮保持活动状态,当我单击另一个按钮时,前一个按钮变为非活动状态。

我的问题是当我再次点击活动按钮时,它不会重置为非活动状态(即恢复正常)。我已经尝试了很多方法来获得我需要的行为,但我无法让它正常工作。

我已经尝试了 $().button().toggle()、遍历了 documentation,还有一些我不记得了。

HTML

<a class="btn btn-success btn-md">Link One</a>
<a class="btn btn-success btn-md">Link Two</a>
<a class="btn btn-success btn-md">Link Three</a>
<a class="btn btn-success btn-md">Link Four</a>

CSS

.btn-active,
.btn-success:hover {
    background-color: #003c1e;
    color: #fff !important;
    /* Gradient */
    background: #00356B; /* Old browsers */
    background: -webkit-gradient(linear, 0 0, 0 100%, from(#006b34), to(#003c1e)) !important;
    background: -webkit-linear-gradient(#006b34 0%, #003c1e 100%) !important;
    background: -moz-linear-gradient(#006b34 0%, #003c1e 100%) !important;
    background: -o-linear-gradient(#006b34 0%, #003c1e 100%) !important;
    background: linear-gradient(#006b34 0%, #003c1e 100%) !important; /* FF3.6+ */ /* Chrome,Safari4+ */ /* Chrome10+,Safari5.1+ */ /* Opera 11.10+ */ /* IE10+ */ /* W3C */
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#006b34', endColorstr='#003c1e',GradientType=0 ) !important; /* IE6-9 */

}

JS

$(".btn-success").click(function(){
    $(this).addClass("btn-active").siblings().removeClass("btn-active");
});

fff

你快到了,尝试使用 toggleClass() 而不是 toggle()。

Toggle 用于控制元素的可见性,而 toggleClass 将为您打开和关闭 CSS class 名称。

$(".btn-success").click(function(){
    $(this).toggleClass("btn-active").siblings().removeClass("btn-active");
});