如何在使用 ng-click 时单独切换多个元素的类?
在这个问题中,https://dev59.com/BmEh5IYBdhLWcg3wvVp4#22072110 通过以下方式实现了点击切换类:
CSS:
.red {
color: red;
}
JS:
$scope.toggle = false;
HTML:
<button id="btn" ng-click="toggle = !toggle" ng-class="{'red' : toggle}">Change Class</button>
但如果我有多个按钮,每个按钮都应该在 ng-click 中切换自己的类,该怎么办?
如果我按照这种方式设置:
HTML:
<button id="btn" ng-click="toggle = !toggle" ng-class="{'red' : toggle}">Change Class</button>
<button id="btn2" ng-click="toggle = !toggle" ng-class="{'red' : toggle}">Change Class</button>
如果我按下一个按钮,两个按钮都会被切换。
我知道一种解决方法是为每个按钮定义自己的ng-click事件(例如,为button1定义toggle1,为button2定义toggle2) - 但这是最好的方法吗?
我知道一种解决方法是为每个按钮定义自己的ng-click事件(例如,为button1定义toggle1,为button2定义toggle2)- 但这是最好的方法吗?
toggleClass
两次,一次用于 "class_one",一次用于 "class_two"。所有toggleClass
做的就是检查类是否已经存在并相应地采取行动:如果存在,则删除它,如果不存在,则添加它。 - MattSidor.directive('toggleClass', function() { return { restrict: 'A', link: function(scope, element, attrs) { element.bind('click', function() { if (attrs.toggleClassOn) { var e = document.querySelectorAll(attrs.toggleClassOn); angular.element(e).toggleClass(attrs.toggleClass); } else { element.toggleClass(attrs.toggleClass); } }); } }; })
- Zombi