toggleClass(如果不存在则添加)

时间:2013-02-14 13:53:46

标签: jquery toggleclass

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

目前我正在使用:

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')      

但它似乎只会在课程中转换,但不会添加“点击 - 奇数”。如果没有班级在场。

2 个答案:

答案 0 :(得分:1)

如果其中一个类已存在,

toggleClass将仅以您希望的方式工作

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

$(e.target).is('.clicked-even, .clicked-odd') ?
    $(e.target).toggleClass('clicked-even clicked-odd') : $(e.target).addClass('clicked-odd');

答案 1 :(得分:0)

toggleClass调用切换类确定。

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

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