【发布时间】:2023-04-09 04:07:02
【问题描述】:
如果你们中的任何一个好人能注意到这一点并让我知道我的方式的错误,那就太棒了,干杯!
我正在使用同位素过滤物品。每个项目都有供用户“收藏”它们的选项。
我可以成功切换复选框并将其当前状态保存到 localStorage,但我想做的是让其中一个过滤器按钮工作,以便它过滤(通过同位素)任何“收藏”的项目.
这里是过滤器按钮,除了“收藏夹”之外,它们都可以正常工作。
HTML
<div id="filters" class="button-group">
<button class="button uppercase is-checked" data-filter="*">All</button>
<button class="button uppercase" data-filter=".amber">AMBER</button>
<button class="button uppercase" data-filter=".dark">DARK</button>
<button class="button uppercase" data-filter=".golden">GOLDEN</button>
<button class="button uppercase" data-filter=".ruby">RUBY</button>
<button class="button uppercase" id="checkbox" data-filter=".checkbox">FAVOURITES</button>
</div>
这是我正在尝试制作的脚本。
JS
function customCheckbox(){
var checkBox = $('.checkbox');
//on load select if necessary
checkBox.each(function(){
var id=$(this).data('id');
if(localStorage.getItem(id)==1){
$(this).addClass("selected");
}
});
//on click toggle selected and save in localstorage
checkBox.click(function(){
var id=$(this).data('id');
$(this).toggleClass("selected");
if($(this).hasClass("selected")){
localStorage.setItem(id,1);
}else{
localStorage.removeItem(id);
}
});
}
$(document).ready(function (){
//start checkboxes here
customCheckbox();
//filter button
var $grid = $('#grid');
$grid.isotope({
itemSelector: '.element-item',
layoutMode: 'fitRows',
transitionDuration: '0.6s'
});
$('#filters').on( 'click', 'button', function() {
$('.checkbox:not(.selected)').parent().show();
$grid.isotope(); //show all not starred blocks
});
$('#checkbox').on( 'click', 'button', function(){
$('.checkbox:not(.selected)').parent().hide();
$grid.isotope(); //hide all not starred blocks
});
如果有人能阐明我哪里出错了,我们将不胜感激!非常感谢您提供任何帮助或建议。
更新:我现在创建了一个 jsfiddle。我是 jsfiddle 的新手;如果我做错了,请大声喊叫。
https://jsfiddle.net/Frannie/rtkpws48/55/
由于某种原因,我似乎无法让收藏夹复选框的(以前成功的)localStorage 切换状态在小提琴中正常工作。不知道我误入歧途了???
无论如何,如果有人知道如何让它发挥作用,那就太好了!
【问题讨论】:
-
能否请您完整地发布 html(带有类名复选框)或在 jsfiddle 或 codepen 中
-
会的,泰米尔人...两秒钟...
-
好的,很抱歉长时间延迟回复。我以前没用过 jsfiddle;所以花了一点时间来设置它。 jsfiddle.net/Frannie/rtkpws48/55 如果我没有正确呈现任何内容,请告诉我:) 再次感谢您的帮助!
-
泰米尔语你是个十足的超级明星!!!您的解决方案是完美。非常感谢,非常感谢!也感谢@KScandrett,让我看看它。我真的不能感谢你们两个!你能抽出时间来帮助我真是太好了。嘻嘻嘻嘻嘻嘻嘻嘻嘻! x x
标签: javascript jquery jquery-isotope