在本地存储中选中复选框,但在加载时也要筛选列表
Keeping a checkbox checked with local storage but also filter a list on load
好吧,这是一个由两部分组成的问题,我最初发布了这个函数:
$(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)函数。
相关文章:
- 使用下拉列表筛选列表(ul>li)
- 需要Jquery列表筛选帮助
- React中的筛选列表
- 在本地存储中选中复选框,但在加载时也要筛选列表
- 根据文本框中键入的文本筛选单选按钮列表
- 使用 JQuery 复选框筛选项目列表
- 无法使用Angular.js从列表中正确筛选数据
- 控制器中的筛选列表没有'不起作用
- 我们可以将控制器中的JSON数据(MM/DD/YYYY格式)与今天的's日期,并在数组中显示筛选列表
- 如何使用搜索筛选器初始化列表视图
- 如何根据其他下拉列表中的选择筛选下拉结果
- 在文本框中键入字母的筛选器单选按钮列表
- 如何从交叉筛选器实例中获取维度列表
- 使用日期将所有下拉列表筛选为下拉列表
- 使用日期将下拉列表筛选为下拉列表
- 将特殊字符折叠添加到列表筛选器
- 使用所需键值的列表筛选对象数组
- 基于第一选择列表筛选第二选择列表
- 用这种方式创建列表筛选器方法不好吗?
- JQuery列表筛选器无法使用错误的字符