【发布时间】:2015-09-18 19:13:38
【问题描述】:
这是我在这里提出的问题的延伸:Owl Carousel 2: filtering items, but keep the sort order using Javascript(希望没问题)。
我有一个过滤项目的菜单。我希望从外部页面链接单击时应用过滤器。因此,在 X 页上单击 FilterA,这会将您定向到 Y 页并将项目过滤到 FilterA,就好像您刚刚在 Y 页上单击了 FilterA。
在理想情况下,它会简单地使用一个链接,例如 www.example.com/pageY/#filterA。
你可以看到直播页面here。
这是过滤功能:
$(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 和按钮一起使用。
【问题讨论】:
-
如果提供的任何解决方案有帮助,请务必接受。
标签: javascript jquery html function filtering