V Jayanth Reddy
V Jayanth Reddy

Reputation: 101

Change background colour of button when clicked

I would like to change the background colour of a button when it is clicked

HTML code:

<div class="btn-group">
    <button type="button" class="btn btn-default" ng-click="style1()">
        Celsius
    </button>
     <button type="button" class="btn btn-default" ng-click="style2()">
        Fahrenheit
    </button>
</div>

Angular code where the background colours of the buttons should be changed:

$scope.style
 {
 };
$scope.style2
 {
 }

Upvotes: 1

Views: 17537

Answers (4)

a.u.b
a.u.b

Reputation: 1609

You can prepare css class:

.clicked 
{
color:red;
}

HTML:

    <div class="btn-group">
        <button type="button" class="btn btn-default" ng-click="buttonClick('Celsius')" ng-class="{'clicked': selectedButton== 'Celsius'  }">
            Celsius
        </button>
         <button type="button" class="btn btn-default" ng-click="buttonClick('Fahrenheit')" ng-class="{'clicked': selectedButton== 'Fahrenheit'  }">
            Fahrenheit
        </button>
    </div>

and give a class name in click function:

$scope.buttonClick= function (s){$scope.selectedButton =s }

http://jsfiddle.net/ms403Ly8/38/

Upvotes: 4

Vivek
Vivek

Reputation: 13298

You should do it this way

angular.module('myapp',[]).controller('testCtrl', function($scope){});
<html ng-app="myapp">

<head>
  <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
</head>

<body ng-controller="testCtrl">
  <div class="btn-group" ng-init="style={'background-color' : 'green'}">
    <button type="button" class="btn btn-default" ng-style="style1"
            ng-click="style1=style; style2=null">Celsius</button>
    <button type="button" class="btn btn-default" ng-style="style2"
            ng-click="style2=style; style1=null">Fahrenheit</button>
  </div>
  <br>
</body>

</html>

Upvotes: 6

devman81
devman81

Reputation: 767

I would use ng-class or ng-style which apply a css style or class based on a scope expression. See the angular documentation for details.

Upvotes: 0

Deepesh kumar Gupta
Deepesh kumar Gupta

Reputation: 896

Take help from this code

<html ng-app="app">
<head>
<title>example</title>
<style type="text/css">

  .red{
    color:red;
  }
  .blue{
    color:blue;
  }

</style>
</head>
<body ng-controller="con">
<div ng-class="class">{{class}}</div>
<button ng-click="changeClass()">Change Class</button>

<script type="text/javascript" src="js/angular.min.js"></script>
<script type="text/javascript">
  var app = angular.module("app",[]);

  app.controller("con",function($scope){

    $scope.class = "red";

    $scope.changeClass = function(){
      if ($scope.class === "red")
        $scope.class = "blue";
      else
        $scope.class = "red";
    };
  });
</script>

Upvotes: 0

Related Questions