我使用了以下jQuery结构,所以我想把它写得更短(编辑:addClass和removeClass是EXAMPLE函数,我想知道将不同函数应用于对象的一般三元方法,所以不要告诉我关于toggleClass,它甚至不像下面的代码那样工作):
if(something){
obj.addClass('class');
}else{
obj.removeClass('class');
}
我想在一行中编写它,所以我想知道如何有条件地应用jQuery函数。使用三元运算符的情况如下,只有这个还没有工作:
$[something?'addClass':'removeClass'].apply(obj,'class');
这很容易在常规的javascript中完成,但我如何正确地构造上面的jQuery?
编辑:我没有搜索两个单独的电话,例如:
something ? obj.addClass('class') : obj.removeClass('class');
答案 0 :(得分:1)
只要把它放在相同的东西上,如果它是真的,那么它将会变得无足轻重。
$( this ).toggleClass( "class" ); = something;
答案 1 :(得分:0)
编写辅助函数怎么样?
function ternary(object, condition, a, b) {
var method = condition ? $.fn[a] : $.fn[b];
var args = arguments.slice(4);
return method.apply(object, parameters, args);
}
然后你可以做
ternary(obj, something, 'addClass', 'removeClass', 'my-class-name');
ternary(obj2, somethingElse, 'slideUp', 'slideDown');