如何在jquery中组合三个if语句,以便传递变量?

时间:2017-04-04 13:24:00

标签: jquery

我有以下jQuery,我使用isScrolledIntoView添加或删除类

Just (No _)

我发现三个if循环令人讨厌。我想在一个函数中实现它。如何做到这一点,我可以传入变量(1,2,3),然后只使用n + 3来调用内部?

2 个答案:

答案 0 :(得分:1)

要干这个,你可以选择前3个元素并使用each()遍历它们。您还可以在循环外检查$('.desktop').length > 0,因为它不受循环逻辑内部任何内容的影响。试试这个:

var hasDesktop = $('.desktop').length > 0;
$('.wrapper.site-section:lt(4)').each(function(i) {
  if (isScrolledIntoView($(this)) && hasDesktop) {
    $('.sidebar li').eq(i + 4).addClass('showAdvertisement').siblings().removeClass('showAdvertisement');
  }
}):

答案 1 :(得分:0)

它基本上会是这样的:

for(int x = 1; x <= 3; x++){ 
if (isScrolledIntoView($('.wrapper.site-section:nth-child(' + x + ')')) === true) {
  if ($('.desktop').length > 0) {
    $('.sidebar li').removeClass('showAdvertisement');
    $('.sidebar li:nth-child(' + (x + 3) + ')').addClass('showAdvertisement');
  }
}
}

我不熟悉你使用它的确切上下文,所以要注意&#34;数字不是有效字符串&#34;错误,但很容易修复。