我尝试基于从数组中选择的多个类来.show()
或.hide()
某些li
个元素。
以下是我正在使用的HTML的示例:
<div class="category-list">
<ul class="light" id="category-menu">
<li id="client-x"><a class="work-item" onclick="toggleContent('client-x')">Client X</a></li>
<li id="client-y"><a class="work-item" onclick="toggleContent('client-y')">Client Y</a></li>
</ul>
</div>
我打电话的功能:
function toggleContent(id) {
jQuery(document).ready(function($) {
var ez = document.getElementsByClassName(id);
var cats = [];
var items = window.localStorage.getItem('items');
if (items === null || items.length === 0) {
cats.push(id);
$(".port-project").hide();
localStorage.setItem("items", JSON.stringify(cats));
$(ez).closest(".port-project").show();
} else {
cats = JSON.parse(localStorage.getItem("items"));
if (cats.indexOf(id) > -1) {
for(var i = 0; i < cats.length; i++){
if (cats[i] === id){
cats.splice(i, 1);
localStorage.setItem("items", JSON.stringify(cats));
//$(ez).closest(".port-project").hide();
}
}
} else {
cats.push(id);
localStorage.setItem("items", JSON.stringify(cats));
//$(ez).closest(".port-project").show();
}
}
$(".port-project").filter(JSON.parse(localStorage.getItem('items'))).show();
}
所以我试图做的是将一组类存储在一个数组中,然后存储在localStroage
中。当有人点击过滤器时,我想根据localStorage中存储的项目显示或隐藏.port-projects
,但只显示该项目中包含所有项目的项目(可通过JSON.parse
/ JSON.stringify
访问)。第二个if / else仅根据类是否已存在来添加或删除类。
我已经阅读了无数的帖子,并且我尝试使用.filter
功能来检查localStorage,但我认为我已经搞砸了这个过程。有什么想法吗?
非常感谢这位新手。