这是我在这里询问的问题的扩展:Owl Carousel 2:使用JavaScript过滤项目,但保留排序顺序(希望这样可以)。
我有一个菜单,用于过滤项目。我希望当从外部页面链接点击时应用过滤器。因此,在页面X上,您单击FilterA,它将指向页面Y并将项目过滤到FilterA,就像您刚刚在页面Y上单击了FilterA一样。
在理想的情况下,它将仅使用链接,例如www.example.com/pageY/#filterA。
您可以在此处查看实际页面。
这是过滤函数:
$(document).ready(function () {
function showProjectsbyCatEur(cat) {
var owl = $(".owl8").data('owlCarousel');
owl.addItem('<div/>', 0);
var nb = owl.itemsAmount;
for (var i = 0; i < (nb - 1); i++) {
owl.removeItem(1);
}
if (cat == 'all8') {
$('#projects-copy8 .project8').each(function () {
owl.addItem($(this).clone());
});
} else {
$('#projects-copy8 .project8.' + cat).each(function () {
owl.addItem($(this).clone());
});
}
owl.removeItem(0);
}
$('.owl8 .project8').clone().appendTo($('#projects-copy8'));
$('#project-terms8 a').click(function (e) {
e.preventDefault();
$('#project-terms8 a').removeClass('active');
cat = $(this).attr('ID');
$(this).addClass('active');
showProjectsbyCatEur(cat);
});
});
我的筛选菜单看起来像这样:
<div id="filter">
<h1 class="title">Eurorack</h1>
<div id="project-terms8">
<ul class="filter">
<li class="filter"><a id="all8" class="active all" onclick="event.preventDefault();" href="#">Show All</a></li>
<li class="filter 3x"><a id="3x" onclick="event.preventDefault();" href="#">Clocks, Logic & CV</a></li>
<li class="filter 2x"><a id="2x" onclick="event.preventDefault();" href="#">Filters & Resonators</a></li>
<li class="filter 1x"><a id="1x" onclick="event.preventDefault();" href="#">Waveform Modifiers</a></li>
</ul>
</div>
迄今为止的答案对我的问题有所帮助,但还没有完全解决。如果有其他人有任何建议,那就太好了!使用 # 似乎不太有用,因为过滤器使用id,这只会创建到过滤器的锚点,因此/?filter=FILTERITEM
是最好的选择。
或者,一个新的过滤系统也可以。只要排序顺序保持不变,并且可以与URL一起使用以及按钮一起使用即可。