你可以使用jQuery的三元运算符吗?

时间:2018-03-03 15:20:50

标签: javascript jquery append operators ternary

我使用了一些jQuery来触发if函数。当我尝试使用vanilla javascript的三元操作数来简化等式时,它似乎无法工作。

我做错了什么?

if(windowBottom > objectBottom) {

    $(this).animate({opacity: '1'}, 1500);
    $(this).addClass('item-play__right');
}
//works fine

windowBottom > objectBottom ? $(this).animate({opacity: '1'}, 1500).addClass('item-play__right');
//doesn't work

3 个答案:

答案 0 :(得分:1)

是的,可以这样做,但需要使用?和& :

windowBottom > objectBottom ? ($(this).animate({opacity:"1"}, 
1500).addClass("item-play__right")) :'';

如果没有三元运算符,代码片段也可以写为

windowBottom > objectBottom && ($(this).animate({opacity:"1"}, 
1500).addClass("item-play__right"));

答案 1 :(得分:0)

这不是您正在使用的有效三元语法,应该有两个可能的结果由:字符分隔。

另外,如果您将其用于副作用而不是计算值,最好使用if / else

答案 2 :(得分:0)

您需要?:,否则会导致语法错误。

windowBottom > objectBottom ? $(this).animate({opacity: '1'}, 1500).addClass('item-play__right') : "";