I would like to change the background colour of a button when it is clicked
HTML code:
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/
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>
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.
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>