使用jQuery内联if if语句到toggleClass?

时间:2015-10-08 13:33:26

标签: jquery

我有一个内联if / else语句,用于添加和删除一个类:

$myvar.length ? $element.addClass('my-class') : $element.removeClass('my-class');

使用toggleClass而不是addClass和removeClass可以将其重写为更短吗?

3 个答案:

答案 0 :(得分:11)

是:

$element.toggleClass('my-class', $myvar.length > 0)

.toggleClass()接受第二个布尔参数,它将添加/删除给定的类。

根据文档:

  

.toggleClass()的第二个版本使用第二个参数   确定是否应添加或删除该类。如果这   参数的值为true,然后添加类;如果是假的话   类被删除。本质上,声明:

$( "#foo" ).toggleClass( className, addOrRemove );
     

相当于:

if ( addOrRemove ) {
  $( "#foo" ).addClass( className );
} else {
  $( "#foo" ).removeClass( className );
}

答案 1 :(得分:3)

$element.toggleClass('my-class', ($myvar.length > 0))

答案 2 :(得分:1)

是的,你可以!

在jQuery文档中,您可以找到here第二种重载方法就是您所需要的。使用2个参数,一个是类,另一个是状态一个布尔值,用于确定是否应该添加或删除类。

$element.toggleClass("my-class",$myvar.length > 0);