gpt4 book ai didi

javascript - 保持选中本地存储的复选框,同时在加载时过滤列表

转载 作者:行者123 更新时间:2023-11-28 07:30:31 25 4
gpt4 key购买 nike

好吧,这是一个由两部分组成的问题,我最初发布了这个函数:

$(function () {
var data = localStorage.getItem("filter-by");

if (data !== null) {
$("input[name='filters']").attr("checked", "checked");
}


});



$("input[name='filters']").click(function () {

if ($(this).is(":checked")) {
localStorage.setItem("filter-by", $(this).val());
} else {
localStorage.removeItem("filters");
}

});

作为我在使用本地存储加载后重新检查复选框的开始。经过一番尝试和错误后,有人能够帮助我编写这个新函数:

$("input[name='filters']").click(function () {
var items = localStorage.getItem("filter-by") || [];
var data = this.data('filter-by');

if ($(this).is(":checked")) {
items.push(data);
} else if (items.indexOf(data) >= 0) {
items.splice(items.indexOf(data), 1);
}

if (items.length > 0) {
localStorage.setItem("filter-by", items);
} else {
localStorage.removeItem("filter-by");
}
});


$(function () {
var items = localStorage.getItem("filter-by") || [];

$("input[name='filters']").each(function(index, input) {
var data = $(input).data('filter-by');
if (items.indexOf(data) >= 0) {
$(input).attr('checked', 'checked');
}
});
});

通过此功能,我可以存储选中的复选框,但列表不会过滤。如何使用我的任一函数在刷新时创建列表过滤器?

我使用的输入如下所示:

<input type="checkbox" name="filters" data-filter-by="Brand A" ng-click="includeBrand('Brand A')" />Brand A

感谢各位的帮助!

最佳答案

要么必须触发点击事件,要么需要为页面加载时每个选中的项目调用 includeBrand(filterString) 函数。

关于javascript - 保持选中本地存储的复选框,同时在加载时过滤列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29174866/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com