Shorten code using Ternary Operators

2019-06-08 17:08发布

问题:

How would one shorten the following using ternary operators?

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

回答1:

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');


回答2:

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

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