繁体   English   中英

如何同时添加和删除类?

[英]How to add and remove classes simultaniously?

我想一次在角jqLit​​e或jQuery中添加和删除3个类。

目前,我的代码如下所示:

$(element).addClass('x')
$(element).addClass('y')
$(element).removeClass('z')

这样做不是有效的,因为

  1. 它会更新DOM 3次
  2. 它是不一致的,因为有时它不能按我想要的顺序执行(例如,在添加类x之前删除类z)

我正在寻找一种可以一次更新dom的方法。 在编写这样的方法并尝试使用RegExp实现之前,

$(element).updateClass({add: ['x','y'], remove: ['z']}

我想知道是否有一个我缺少的解决方案,该解决方案更容易实现,并且可以为我提供对类操作的控制。

我最初将其发布为评论,但是由于您收到的答案有误,因此我也将其发布在此处。

$(element).toggleClass('xy z');

我认为您想要ng-class属性:

<p ng-class="{x: if_x, y: if_y, z: if_z}">text</p>

在您的控制器中,将$scope.if_x设置$scope.if_x true以启用类x ,依此类推。

使用Angular的全部目的是避免在代码中设置DOM属性,而应使用Angular属性来控制DOM。

$(元件).addClass( 'X')removeClass( 'y')的。

角解

将类设置为变量:

<div class="{{myclass}}"></div>

然后只需将变量更新为所需

$scope.myclass = "x y";

$(element).switchClass('z','x y',0);

文件

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM