Shorten code using Ternary Operators

2019-06-08 16:18发布

How would one shorten the following using ternary operators?

if ((pos - maxPos) == (c.clientWidth)) {
    $j("#next").addClass("filter");
} else {
    $j("#next").removeClass("filter");
}

2条回答
冷血范
2楼-- · 2019-06-08 17:10

No need to use a ternary operator, .toggleClass() accepts a second argument to determine if the class should be added or removed:

$j('#next').toggleClass('filter', ((pos - maxPos) == c.clientWidth))

However, for the sake of answering your question exactly like you asked (don't use it!):

$j('#next')[((pos - maxPos) == c.clientWidth) ? 'addClass' : 'removeClass']('filter');
查看更多
贼婆χ
3楼-- · 2019-06-08 17:13

Even better than a ternary, using the switch param in toggleClass()

$j("#next").toggleClass("filter", pos - maxPos === c.clientWidth);
查看更多
登录 后发表回答