在angularJS中如何让bootstrap的按钮组实现排他事件呢?

点击不同的按钮,则当前按钮的背景色发生改变,其他的按钮变成白色,这样的事件很容易实现的,但是放在angular中却不起效,获取不到类,请大神指点。代码如下:

                        <div class="btn-group">
                            <button type="button" class="btn btn-default btn-sty active" ng-click="load(1)">今日</button>
                            <button type="button" class="btn btn-default btn-sty" ng-click="load(2)">昨日</button>
                            <button type="button" class="btn btn-default btn-sty" ng-click="load(3)">本月</button>
                        </div>

JQ实现如下:

$(function () {
    $(".btn-sty").click(function () {
        // console.log($(this),1)
        $(this).addClass('active').siblings().removeClass('active');
    });
})
阅读 2.9k
2 个回答

ng-class来控制样式

<button type="button" class="btn btn-default btn-sty" ng-class="{'active': index === 1}" ng-click="load(1)">今日</button>
<button type="button" class="btn btn-default btn-sty" ng-class="{'active': index === 2}" ng-click="load(2)">昨日</button>
<button type="button" class="btn btn-default btn-sty" ng-class="{'active': index === 3}" ng-click="load(3)">本月</button>

ctrl中

$scope.load = function(num) {
    $scope.index = num;
    // ...
}

本人也用JQUERY实现了,代码如下:

                    <div class="btn-group">
                        <button type="button" class="btn btn-default active" onclick="btnClick(this)"  ng-click="load(1)">今日</button>
                        <button type="button" class="btn btn-default" onclick="btnClick(this)"  ng-click="load(2)">昨日</button>
                        <button type="button" class="btn btn-default" onclick="btnClick(this)" ng-click="load(3)">本月</button>
                    </div>
                    
  function btnClick(e) {
$(e).click(function () {
    console.log($(this), 1)
    $(this).addClass('active').siblings().removeClass('active');
});

}

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题