1

Hello i am newbie to angularjs and have made a very simple demo of some buttons and css classes.now i am having 4 buttons i need to give my "active" css class when one of 4 buttons is selected,my code is as below,i have gone through this link but its for checkbox and i have no idea about implementing this on buttons change css class dynamically

html

<div class="tab-btn">
    <input type="button"   ng-class="{'active': true}" ng-disabled="button.disabled" ng-show="about"   ng-click="show = 1" value="About" />
     <input type="button" ng-show="help"    ng-click="show = 2" value="Help"/>    
    <input type="button" ng-show="Info"    ng-click="show = 3" value="Special" />        
    <input type="button" ng-show="Service" ng-click="show = 4" value="Service" />            
    <div style="clear: both"></div>
</div>

css

.tab-btn > input.active {
    background: #fff none repeat scroll 0 0;
    border-top: 3px solid #babec9;
    color: #aaaeb9;
}

js

 $scope.show = 1;
            $scope.show1 = function(){
//        var myEl = angular.element( document.querySelector( '#divID' ) );
//            myEl.toggleClass('red');     
                $scope.show2 = false;
                 $scope.show3 = false;
                  $scope.show4 = false;




            };
               $scope.show2 = true;
            $scope.show2 = function(){

                $scope.show1 = false;
                 $scope.show3 = false;
                  $scope.show4 = false;
            };
             $scope.show3 = true;
            $scope.show3 = function(){

                $scope.show1 = false;
                 $scope.show2 = false;
                  $scope.show4 = false;
            };
             $scope.show4 = true;
              $scope.show4 = function(){

                $scope.show1 = false;
                 $scope.show2 = false;
                  $scope.show3 = false;
            };
2
  • 1
    Please create a jsfiddle or plnkr.co so that it is easier to explain your problem and get it answered quickly. Commented Oct 17, 2015 at 7:27
  • 1
    Use ng-class with boolean expression. Commented Oct 17, 2015 at 7:57

2 Answers 2

1

You can simple use ng-class="{'active': show == 1}" expression in ngShow:

angular.module('demo', []).controller("DemoController", function($scope) {
    $scope.show = 2;
})
.active {color: red;}
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.7/angular.min.js"></script>
<div ng-app="demo" ng-controller="DemoController">
    <div class="tab-btn">
        <input type="button" ng-class="{'active': show == 1}" ng-click="show = 1" value="About" />
        <input type="button" ng-class="{'active': show == 2}" ng-click="show = 2" value="Help" />
        <input type="button" ng-class="{'active': show == 3}" ng-click="show = 3" value="Special" />
        <input type="button" ng-class="{'active': show == 4}" ng-click="show = 4" value="Service" />
        <div style="clear: both"></div>
    </div>
</div>

Sign up to request clarification or add additional context in comments.

1 Comment

(stackoverflow.com/questions/33182968/…) this is my another question which is having same issue
1
<div class="tab-btn" ng-init = "show = 1" ng-controller= "SampleController">
 <input type="button" ng-disabled="show == 1" ng-class="{'active': show == 1}"  ng-click="show = 1" value="About" />
 <input type="button" ng-disabled="show == 2" ng-class="{'active': show == 2}" ng-click="show = 2" value="Help"/>    
<input type="button" ng-disabled="show == 3" ng-class="{'active': show == 3}" ng-click="show = 3" value="Special" />        
<input type="button" ng-disabled="show == 4" ng-class="{'active': show == 4}" ng-click="show = 4" value="Service" />                   
<div style="clear: both"></div>

1 Comment

hi sudeep i appriciate your help dear.but i am stuck at one more point can you help me in that? please it took my whole day..(stackoverflow.com/questions/33182968/…)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.