如何在原生AngularJS中添加/删除CSS类(不依赖于jQuery)
How do I add/remove a CSS class in native AngularJS (not relying on jQuery)?
我想添加/删除CSS类就像jQuery的$('#element').addClass('new_class')
和removeClass()
。AngularJS是否提供了一个不需要jQuery或jQLite的本地解决方案?我们的主要开发人员说,出于性能原因,他将删除jQuery,所以我需要一个本地解决方案。
我相信下面的例子使用了jQLite,它也应该被删除。
angular.element('#element').addClass("new_class");
是否存在真正的本地选项?
注:我用过ngClass,但那似乎不适合我的需要,因为我需要从控制器控制它。我基本上是利用Animate.css库制作动画,因此在某些事件中,我需要添加/删除CSS类来触发动画。我不认为我可以用ngClass实现这个。
你只需要在指令"ng-class"中绑定一个变量,然后从控制器中修改它。下面是一个示例:
var app = angular.module("ap",[]);
app.controller("con",function($scope){
$scope.class = "red";
$scope.changeClass = function(){
if ($scope.class === "red")
$scope.class = "blue";
else
$scope.class = "red";
};
});
.red{
color:red;
}
.blue{
color:blue;
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<body ng-app="ap" ng-controller="con">
<div ng-class="class">{{class}}</div>
<button ng-click="changeClass()">Change Class</button>
</body>
这个网站将是你远离jQuery的一个很好的资源:http://youmightnotneedjquery.com
这是删除一个类的例子:
if (el.classList)
el.classList.remove(className);
else
el.className = el.className.replace(new RegExp('(^|''b)' + className.split(' ').join('|') + '(''b|$)', 'gi'), ' ');
那应该足够让你走了。
相关文章:
- 将 CSS 应用于禁用的输入按钮
- 依赖于缓慢加载javascript的UI
- 如何隐藏&使用jQuery禁用依赖于另一个字段值的字段
- Node.js中依赖于版本的类型继承
- 如何使AngularJS控制器依赖于通过ajax加载在rootScope上的值
- 如何使用EnquireJS使AngularJS范围变量依赖于媒体查询
- 阻止Jquery对话框内容的CSS应用于主窗口
- Ajax xml源解析依赖于jQuery的点击操作
- Sails.js日志传输依赖于环境
- 如何使用 2 个 XMLHttpRequest 一个依赖于另一个
- 使用内部脚本更改表单元格 css,而不依赖于 id、类或包含
- 依赖于jquery和css的html标记中的安全问题
- 从 JavaScript 更改依赖于浏览器的 CSS 样式
- 选择css类依赖于内容
- 加载需要module's的css依赖于webpack
- 使用Django、CSS和Javascript使HTML表单文本字段依赖于复选框的选择
- 使用jquery隐藏依赖于操作系统的CSS元素
- 为什么使用依赖于浏览器的CSS ?
- 如何在原生AngularJS中添加/删除CSS类(不依赖于jQuery)
- 我想定义一个css样式表或添加一个依赖于视口大小的主体类