1

如果存在则切换类的最简单方法是什么,否则如果不存在则添加一个?

目前我正在使用:

if ($(e.target).hasClass('clicked-odd')) {
  $(e.target).removeClass('clicked-odd');
  $(e.target).addClass('clicked-even');
} else {
  $(e.target).removeClass('clicked-even');
  $(e.target).addClass('clicked-odd');
}

...这似乎有点长。

你会认为这会起作用:

$(e.target).toggleClass('clicked-even', 'clicked-odd')      

但它似乎只在存在类的情况下切换一个类,但如果两个类都不存在,则不添加“clicked-odd”。

4

2 回答 2

1

如果其中一个类已经存在,toggleClass 只会以您希望的方式工作

我能想到的最简单的方法是

$(e.target).is('.clicked-even, .clicked-odd') ?
    $(e.target).toggleClass('clicked-even clicked-odd') : $(e.target).addClass('clicked-odd');
于 2013-02-14T14:53:24.463 回答
0

toggleClass调用切换类确定。

但是要使用它并让它按您的意愿工作,您需要首先在您的目标上安装该类,如果没有,则两个类都将在第一次切换时添加,并在第二次调用时删除。

如果您想从目标上没有类开始,则需要if第一次插入一个。

于 2013-02-14T14:42:20.477 回答