我有一个内联if / else语句,用于添加和删除一个类:
$myvar.length ? $element.addClass('my-class') : $element.removeClass('my-class');
使用toggleClass而不是addClass和removeClass可以将其重写为更短吗?
答案 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);