我有以下jQuery,我使用isScrolledIntoView添加或删除类
Just (No _)
我发现三个if循环令人讨厌。我想在一个函数中实现它。如何做到这一点,我可以传入变量(1,2,3),然后只使用n + 3来调用内部?
答案 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;错误,但很容易修复。