javascript - 清除并添加新类别?

标签 javascript jquery jquery-isotope

我有这样的列表:

<ul id="portfolio-filter">
  <li><a class=".tab1" data-filter=".Design" dir="ltr" href="#">Design</a></li>
  <li><a class=".tab2" data-filter=".Tech" dir="ltr" href="#">Technology</a></li>
</ul>
<ul id="portfolio-list">
   <li style='opacity:1'>Content</li>
   <li style='opacity:1'>Content</li>
   <li style='opacity:1'>Content</li>
   <li style='opacity:1'>Content</li>
   <li style='opacity:0'>Content</li>
   <li style='opacity:0'>Content</li>
   <li style='opacity:0'>Content</li>
</ul>

我使用 Jquery 添加类 (MYCLASS),其中 li 的 opacity = 1 如下(在页面加载时运行):

 //Add class if opacity
    $('#portfolio-list li').map(function() {
        if($(this).css('opacity') != '0')
          $(this).addClass("MYCLASS");
      });

但是当我使用点击功能时(它将以另一个顺序改变每个的不透明度),例如:

<ul id="portfolio-list">
   <li style='opacity:0'>Content</li>
   <li style='opacity:0'>Content</li>
   <li style='opacity:1'>Content</li>
   <li style='opacity:1'>Content</li>
   <li style='opacity:1'>Content</li>
   <li style='opacity:3'>Content</li>
   <li style='opacity:1'>Content</li>
</ul>

我想重新添加 onclick 类,我使用了:

$filter.find('a').click(function (e) {
    //Run filter
    $container.isotope({
            filter: selector,
            animationOptions: {
                duration: 750,
                easing: 'linear',
                queue: false
            }
        });
    //Add class
    $('#portfolio-list li').map(function() {
       if($(this).css('opacity') != '0') {
         $(this).addClass("MYCLASS");
       } else {
         $(this).removeClass("MYCLASS");
       }
    ); 
}

但它无法正确运行。

大家可以帮帮我吗?谢谢。

最佳答案

我尝试了你的代码,看来它对我有用。我用过each()循环遍历 #portfolio-list li 中的所有 li 标签,并应用一些我理解问题的 css 类。

$(function(){
  $('#portfolio-list li').each(function(){
    if($(this).css('opacity') == 1){
      $(this).addClass("MYCLASS");
    }      
  });  
});

这里正在工作 Demo.

您正在使用map()这在工作中看起来相同但有区别,See Here.

关于javascript - 清除并添加新类别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22587240/

相关文章:

jquery - 最大的项目始终首先显示在同位素中

jQuery 和 Isotope 按元素内的数字排序

javascript - JQuery Isotope - 将边距应用于元素的最佳方法是什么?

javascript - foreach 循环等待直到每个步骤中的每个函数完成

javascript - Webgl 上下文丢失且未恢复

jquery - 如何显示/隐藏下拉检查列表的放置容器

javascript - JQuery 翻译功能在 firefox/chrome 中不起作用

javascript - OR 操作 ( || ) 与 inArray() 的性能

javascript - 如何使用 javascript 在 Iframe 页面中查找特定单词?

javascript - 下载链接点击浏览器打开下载窗口