javascript - 如何在过滤器中添加/删除类 jQuery?

标签 javascript jquery html css

我的网站上有过滤器。有类别,当您单击该类别链接时,它会显示类别中的服务。 我想为这些帖子添加动画,所以当我单击类别时为这些帖子设置动画。我制作了动画,我需要做的就是在单击他的类别时向每个帖子添加 fade-in-services 类,如果该帖子具有 fade-in-services 类,则在此之前将其删除。

我有两个列表,一个用于类别,另一个用于帖子,看起来像这样

<ul class="subcats">
<li>
  <a href="#">All</a>
</li>
<li>
  <a href="#">Cat1</a>
</li>
<li>
  <a href="#">Cat2</a>
  </li>
</ul>

<ul id="posts">
<li>
  <a href="#">
    <div class="fade-in-services">Post 1</div>
  </a></li>
<li>
  <a href="#">
    <div class="fade-in-services">Post 2</div>
  </a>
</li>
<li>
  <a href="#">
    <div class="fade-in-services">Post 3</div>
  </a>
</li>
</ul>

因此,当您点击全部时,它会显示所有三个帖子,当您点击 Cat1 时,只会显示帖子 1 和帖子 2,而当您点击 Cat2 时,会显示帖子 3。

jQuery('.subcats li').click(function() {                            
    jQuery('.hp-single-service').addClass('fade-in-services');
    jQuery(this).removeClass('fade-in-services');
    });

这行得通,但并非总是如此,因为 jQuery(this) catch .subcats li 并且不会删除类 fade-in-services。因此,当我抛出类别时,如果同一帖子属于两个类别,则该帖子不会动画,因为它具有 fade-in-service 类。

我该如何解决这个问题?

谢谢!

最佳答案

我不确定您的代码是否如您所想。它执行以下操作:

  1. ul.subcats

  2. 中的 3 li 上设置点击事件
  3. 当其中一个 li 被点击时:

    2a。将 .fade-in-services 添加到所有带有 .hp-single-service

    的元素

    2b。从点击的 li

    移除 .fade-in-services

    2bi。 (在任何时候都没有类(class))

关于javascript - 如何在过滤器中添加/删除类 jQuery?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31763643/

相关文章:

javascript - 多键值查询搜索输入框

javascript - 相同的 JavaScript 代码在两个不同的环境中表现不同

javascript - 使用 colorValue 的 Highcharts 饼图切片颜色强度

jQuery(自定义)轮播不重复

html - 如何在高度未知的div中垂直居中div?

Objective-C 中的 HTML 字符串

javascript - 在深度监视 VueJs 时忽略一些属性

javascript - 如何保护 JavaScript 文件?

javascript - 如何检查 jquery 或 javascript 中的时间重叠

css - 我的垂直导航只和我的窗口一样高,不知道为什么