jquery 在Tumblr上,有什么代码可以在点击时只显示某个标签的帖子,而不需要重新加载页面?

sulc1iza  于 2023-08-04  发布在  jQuery
关注(0)|答案(1)|浏览(84)

以下是我目前的自定义标签菜单:

<span class="filter-by">
<ul class="tag-filter">
            <li class="tag-filter-item"><a href="/" id="tag-all" title="All">#all</a></li>
            <li class="tag-filter-item"><a href="/tagged/cat1" id="tag-cat1" title="Cat1">#cat1</a></li>
            <li class="tag-filter-item"><a href="/tagged/cat2" id="tag-cat2" title="Cat2">#cat2</a></li>
            <li class="tag-filter-item"><a href="/tagged/cat3" id="tag-cat3" title="Cat3">#cat3</a></li>
        </ul>
</span>

字符串
我希望发生的是,当用户点击#all(这应该是默认值)时,页面将显示所有帖子。当用户点击#cat1、#cat2或#cat3时,页面将只显示那些点击了标签的帖子,而隐藏其余的帖子,基本上不会离开当前页面或主页。
我知道这是可能的,因为我以前试验过的一个主题有这种能力,但我不是Maven,所以我会感谢任何输入。

klr1opcd

klr1opcd1#

下面的示例显示了您对每个标记发出请求的情况。为了更快,您可以将数据保存在本地存储器上,如all cats data, cute cats data etc..

function getData (value) {
let request = "https://cataas.com/api/cats";

if (value) {
    request = value == "all" ? request : `${request}?tags=${value}`;
}

 const xhttp = new XMLHttpRequest();
  xhttp.onload = function() {
   document.getElementById("header").innerHTML = `${value} cats`;
    document.getElementById("results").innerHTML = this.responseText;
  }
  xhttp.open("GET", request);
  xhttp.send();
}

个字符

相关问题