Javascript “循环”;冻结“;我的网站如何减少循环的数量?
我做过滤的方法,它做的每件事都是正确的,但是在过滤之前我有很多循环来“冻结”我的站点一两秒钟。 我想改进一下,但我不知道这是最好的 在本例中,我使用jQuery,但我可以将该代码转换为Vanilla JS,这没有问题 所以 当我选中筛选的多个复选框中的一个时,该值将被推送到一个项目数组中,我使用该数组的参数来筛选项目Javascript “循环”;冻结“;我的网站如何减少循环的数量?,javascript,jquery,slider,slick.js,Javascript,Jquery,Slider,Slick.js,我做过滤的方法,它做的每件事都是正确的,但是在过滤之前我有很多循环来“冻结”我的站点一两秒钟。 我想改进一下,但我不知道这是最好的 在本例中,我使用jQuery,但我可以将该代码转换为Vanilla JS,这没有问题 所以 当我选中筛选的多个复选框中的一个时,该值将被推送到一个项目数组中,我使用该数组的参数来筛选项目 let choosenValuesDesk = []; // array of items $(".aside-sortwidget input:checkbox&quo
let choosenValuesDesk = []; // array of items
$(".aside-sortwidget input:checkbox").change(function() { // runs when is checkbox touched
if($(this).is(":checked")) { // add to array
...
choosenValuesDesk.push(chooseMe); // choose me is item, prepared for filtration, variable from above ...
$(".desktop-slider__item").each(function(i, obj) { // loop slider items for filtration, btw, here is that "freeze"
choosenValuesDesk.map((val) => { // loop items from array above to filter items in each function
...
if($(this).data().filter.includes(val)) { // if this slider item has value from chosen checkbox value in data attribute
$(this).addClass("keep-this-slide"); // keep slider item
} else {
$(this).removeClass("keep-this-slide");
// else remove class and "hide" item...
}...
}
}
} else { // remove from array it's same process from above to uncheck checkbox
}
});
顺便说一句,我使用光滑的滑块过滤方法,这会是一个问题吗
成功过滤的代码示例:
$(".desktop-slider")
.slick("slickUnfilter")
.slick("slickFilter", ".keep-this-slide");
有多个结束括号丢失
)
这是否是复制粘贴错误。@ManasKhandelwal,您好,我减少了代码,我留下了最重要的部分,没有错误。