如何在AngularJS上添加不同元素的Class和removeClass
How to addClass and removeClass with different element on AngularJS?
我有一个想要实现的简单dom:
<header>
<button class="open-btn></button>
</header>
<nav class="active">
<button class="close-btn"></button>
</nav>
如何在Angular上用单独的元素实现简单的addClass和removeClass函数?
我读过服务、工厂和控制器,听起来很困惑。
我已经成功地使用Controller在同一个控制器上添加和删除类,比如说open-btn
和close-btn
都在nav
下,但如果我使用不同的元素呢?我觉得我所做的很不对,这是正确的方式吗?我必须把它注册到服务/工厂吗?
场景:
当用户单击open-btn
时,元素nav
将具有active
的类,如果用户单击close-btn
,则nav
将移除其active
按钮。
使用jQuery似乎很容易做到这一点,但我该如何使用Angular方法呢?
您可以让按钮在作用域中设置一个值,然后使用ng-class
:根据该元素的值为元素提供类
<header>
<button class="open-btn" ng-click="isActive = true">Open</button>
</header>
<nav ng-class="{ 'active': isActive }">
<button class="close-btn" ng-click="isActive = false">Close</button>
</nav>
来自ng-class
文档:
如果表达式的计算结果为对象,则对于每个键值对对于具有truthy值的对象,使用相应的键作为类名。
Angular有ngClass
来添加/删除类
像这个
ctrl
$scope.isOpen=false;
$scope.open=function(){
$scope.isOpen=true;
}
$scope.close=function(){
$scope.isOpen=false;
}
Html
<header>
<button class="open-btn" ng-click="open()"></button>
</header>
<nav class="active" ng-class="{'active': isOpen }">
<button class="close-btn" ng-click="close()"></button>
</nav>
相关文章:
- 通过id和class属性获取元素
- $(.class).empty总是缺少一个元素
- 将鼠标悬停在Angular JS中的一个元素上,并将Class添加到另一个元素中
- jQuery:具有class但不具有$(this)的元素
- 在所选元素的父元素上添加“ng-class”
- 使用类而不是 ID(通过 CLASS 而不是 ID 获取元素)
- “class”属性的值隐式扩展某些标记元素
- 元素必须单击两次才能添加Class(自定义指令)
- 将class属性设置为元素不适用于javascript和jquery
- 如何在AngularJS中使用ng-class仅在特定页面上向元素添加类
- 用于将 Class 添加到链接中指定的元素的动态代码
- Jquery 如何在不作为父级的情况下选择低于 id/class 的元素
- jQuery从许多具有相同.class的元素中更改单击元素的CSS背景
- 使用两个父级滚动到元素,一个具有id,另一个具有class
- 我创建了一个CSS切换器,但我只需要更改class=“”的元素;红色”;身体
- 如何在AngularJS上添加不同元素的Class和removeClass
- 如何选择具有class属性的元素(使用jQuery),该属性的值正好以给定字符串开头
- Javascript-不带ID或Class的get元素(按钮)
- 查找类为'的元素;x',忽略那些有class的'x'和另一类
- 当元素'class属性发生变化时是否会触发事件?