以下代码的唯一区别是用于增加或减去该值的 - 和 + 符号。
if( that.hasClass('prev') ){
$('.elem').scrollLeft( $('.elem').scrollLeft()-(0.1*factor) );
}
else if( that.hasClass('next') ){
$('.elem').scrollLeft( $('.elem').scrollLeft()+(0.1*factor) );
}
我想知道如何在一个小的三元语句中转换代码,是否可能?
答案 0 :(得分:2)
如果你真的需要测试这两个类(“next”和“prev”),你可以将逻辑分解出来:
var mul = that.hasClass("prev") ? -1 :
that.hasClass("next") ? 1 :
0;
$(".elem").scrollLeft($(".elem").scrollLeft() + mul * 0.1 * factor);
如果您感觉特别有活力,可以将其转换为jQuery函数:
$.fn.scrollDir = function() {
return that.hasClass("prev") ? -1 :
that.hasClass("next") ? 1 :
0;
};
$(".elem").scrollLeft($(".elem").scrollLeft() + that.scrollDir() * 0.1 * factor);
答案 1 :(得分:1)
如果您真的想这样做,以下情况应该有效:
$('.elem').scrollLeft($('.elem').scrollLeft()+(0.1*factor*(that.hasClass('prev') ? -1 : that.hasClass('next') ? 1 : 0)))
但为了清楚起见,我可能会像你写的那样离开它。
答案 2 :(得分:0)
我会这样做
(that.hasClass('prev')) ? $('.elem').scrollLeft( $('.elem').scrollLeft()-(0.1*factor) ) : $('.elem').scrollLeft( $('.elem').scrollLeft()+(0.1*factor) );