如何确保按下的按钮保持"按下"

时间:2014-08-13 07:46:45

标签: html css html5 twitter-bootstrap

我正在使用BootStrap Group Button类,发现在我自己的代码中,如果按下按钮,按钮会在几秒钟内弹回....

如何确保其保持按下状态?

<div class="row">
<div class="col-md-12">
    <div class="form-group">
        <label>Stage of business:</label>
        <br />
        <div class="btn-group">
            <button class="btn btn-default"><span class="glyphicon">Start-up</span>
            </button>
            <button class="btn btn-default"><span class="glyphicon">Growth Company</span>
            </button>
            <button class="btn btn-default"><span class="glyphicon">Mature Company</span>
            </button>
        </div>
    </div>
</div>

谢谢。


更新

我添加了活跃的CSS和 我发现当我点击按钮时整个页面都会刷新,这就是按钮失去活动css类的原因。 如何仅对这3个按钮禁用提交操作?因为我有一个按钮,也是这种形式,它需要触发提交动作。

$('.btn-stage').click(function () {
            $(this).toggleClass("active"); //addCss("active");
        })

更新3

此外,在此按钮组中,只能选择一个按钮,如果选择了其他按钮,则其余按钮应该反弹。

谢谢。

4 个答案:

答案 0 :(得分:9)

向按钮添加活动类应该保持“按下”样式。

$('.btn').click(function(e) {
    e.preventDefault();
    $(this).addClass('active');
})

希望有所帮助。

答案 1 :(得分:3)

<强> Demo

JS

$('.Button').click(function() {
    $(this).toggleClass("active");
});

CSS

.Button:active, .active {
    background-color:red;
    color: white;
}

HTML

<button class='Button'>Button</button>

<强> Final Demo

JS

$('.Button').click(function(e) {
    $('.Button').not(this).removeClass('active');    
    $(this).toggleClass('active');
    e.preventDefault();
});

HTML

<button class='Button'>Button</button>
<button class='Button'>Button</button>
<button class='Button'>Button</button>

CSS

.Button:active, .active {
    background-color:red;
    color: white;
}

答案 2 :(得分:1)

添加一个类来定义它们,让我们像这样说“nosubmit”:

    <button class="btn btn-default nosubmit"><span class="glyphicon">Start-up</span>
    </button>
    <button class="btn btn-default nosubmit"><span class="glyphicon">Growth Company</span>
    </button>
    <button class="btn btn-default nosubmit"><span class="glyphicon">Mature Company</span>
    </button>

然后这样做:

    $('.nosubmit').click(function() {
        $(this).addClass("active");
        $('.nosubmit').unbind( "click" );// this will take off the click handler from all the nosubmit buttons
// if you want it to be to changed back whene you click again use toggleClass instead
         return false;
    });

答案 3 :(得分:1)

你把按钮放在哪里了?是形式吗?如果按钮不在表单标签内,我可以将按钮的类添加/更改为活动状态。你可以使用:

$(document).ready(function(){
        $('.btn-stage').click(function () {
            $('.btn-stage.active').removeClass("active");
            $(this).addClass("active");
        })
    });

但如果它在表单标记中,则需要添加type =&#39; button&#39;你的按钮元素。所以它看起来像这样

<form>
    <div class="row">
        <div class="col-md-12">
                <div class="form-group">
                    <label>Stage of business:</label>
                    <br />
                    <div class="btn-group">
                        <button class="btn btn-default btn-stage" type='button'><span class="glyphicon">Start-up</span>
                        </button>
                        <button class="btn btn-default btn-stage" type='button'><span class="glyphicon">Growth Company</span>
                        </button>
                        <button class="btn btn-default btn-stage" type='button'><span class="glyphicon">Mature Company</span>
                        </button>
                    </div>
                </div>
        </div>
    </div>
</form>

上面的javascript仍在运行。当您在表单中有一个按钮但未指定其按钮的类型时,它将自动设置为类型=&#39;提交&#39;