嗨,我正在为学校做一个项目,我只做编码的前端,其中一个要求是我用 jQuery 过滤我的博客类别。通常我会使用 PHP 并根据参数对其进行过滤,但这个项目都是静态代码,没有数据库。目前我有两个博客页面,blog.html
并且blog-post.html
都有一个包含类别的侧边栏。我现在的方法是为每个类别设置一个 ID,每当单击该链接时,我都会隐藏当前的博客文章列表并显示具有匹配类的文章,但我的问题是当我在我的blog-post.html
页面上并单击过滤器链接它显然失败了,因为它正在寻找的内容不在 DOM 中。最好的方法是什么,我有一个想法,我只是把所有内容放在一个页面上,比如blog.html
然后隐藏blog-post.html
内容,除非有人点击阅读更多按钮,这是一个好方法还是有更好的方法?提前感谢您的帮助!
博客.HTML
<!-- Filters -->
<ul>
<li>
<a id="web-design" class="filter" href="http://www.site.com/blog/">Web Design</a>
</li>
<li>
<a id="web-development" class="filter" href="http://www.site.com/blog/">Web Development</a>
</li>
</ul>
<!-- Articles -->
<article class="layout-article web-design">
<h3 class="title-medium">Lorem Ipsum 2</h3>
<p>Donec in sem a nulla eleifend ...</p>
<a href="http://www.site.com/blog/lorem-ipsum-2">Read More</a>
</article>
<article class="layout-article web-development">
<h3 class="title-medium">Lorem Ipsum 1</h3>
<p>Suspendisse convallis egestas ...</p>
<a href="http://www.site.com/blog/lorem-ipsum-1">Read More</a>
</article>
博客-POST.HTML
<!-- Filters -->
<ul>
<li>
<a id="web-design" class="filter" href="http://www.site.com/blog/">Web Design</a>
</li>
<li>
<a id="web-development" class="filter" href="http://www.site.com/blog/">Web Development</a>
</li>
</ul>
<!-- Article -->
<article class="layout-article web-design">
<h3 class="title-medium">Lorem Ipsum 2</h3>
<p>Donec in sem a nulla eleifend vivamus velit dolor, blandit quis sodales quis, ullamcorper vitae sem. Nunc elementum, eros sit amet pellentesque placerat, sem massa commodo lectus, nec auctor ligula quam eu nibh. Suspendisse potenti.</p>
</article>
jQuery
$(document).ready(function() {
$('.filter').click(function(e) {
$('.layout-article').hide();
$('.' + this.id).show(500);
return false;
});
});