Reputation: 5458
Im trying to add/remove a calss from 3 buttons, for some reason it sometimes takes more than one click to work
<a class="button small">
<i class="icon-circle-arrow-up" ng-click="select('slide')" ng-class="{active: 'slide' == selected}"></i>
</a>
<a class="button small">
<i class="icon-resize-horizontal" ng-click="select('wave')" ng-class="{active: 'wave' == selected}"></i>
</a>
<a class="button small">
<i class="icon-repeat" ng-click="select('role')" ng-class="{active: 'role' == selected}"></i>
</a>
the javascript:
myApp.controller("TodoCtrl", function($scope, $http) {
$scope.slide = "one";
$scope.animate = "slide";
$scope.selected = "slide";
return $scope.select = function(item) {
$scope.selected = item;
return $scope.animate = item;
};
});
plunkr:
http://plnkr.co/QuXPziBWUgmiHcmcqC4F
Upvotes: 2
Views: 1831
Reputation: 14318
Try to wrap the icon with a span
using on-tap
event:
<span on-tap="select('slide')">
<i class="icon-circle-arrow-up" ng-class="{active: 'slide' == selected}"></i>
</span>
Upvotes: 0
Reputation: 5290
change
<a class="button small">
<i class="icon-circle-arrow-up" ng-click="select('slide')" ng-class="{active: 'slide' == selected}"></i>
</a>
to
<a class="button small" ng-click="select('slide')">
<i class="icon-circle-arrow-up" ng-class="{active: 'slide' == selected}"></i>
</a>
You have the ng-click on the actual icon and not on the entire button
Upvotes: 5