【问题标题】:Add css to selected "items" jQuery filter将 css 添加到选定的“项目”jQuery 过滤器
【发布时间】:2013-08-23 03:58:01
【问题描述】:

我正在使用此脚本过滤我的项目,但我需要将 margin:0 添加到活动/选定项目,以便它们正确排列。

JS

$(document).ready(function () {
    $('ul#filter a').click(function () {
        $(this).css('outline', 'none');
        $('ul#filter .current').removeClass('current');
        $(this).parent().addClass('current');

        var filterVal = $(this).text().toLowerCase().replace(' ', '-');

        if (filterVal == 'all') {
            $('ul#items li.hidden').fadeIn('xslow').removeClass('hidden');
        } else {

            $('ul#items li').each(function () {
                if (!$(this).hasClass(filterVal)) {
                    $(this).fadeOut('normal').addClass('hidden');
                } else {
                    $(this).fadeIn('xslow').removeClass('hidden');
                }
            });
        }

        return false;
    });
});

帮助高度赞赏

=========================

添加了编辑的 HTML

菜单:

                        <ul id="filter">
                        <li class="current"><a href="#">All</a></li>
                        <li><a href="#">item1</a></li>
                        <li><a href="#">item2</a></li>
                        <li><a href="#">item3</a></li>
                        <li><a href="#">item4</a></li>
                        <li><a href="#">item5</a></li>
                        <li><a href="#">item6</a></li>
                </ul>

和项目:

                        <ul id="items">
                        <div class="span12">

                        <li class="item1 span4">
                        <img src="images/item.jpg" alt=""/>
                        </li>

                        <li class="item2 span4">
                        <img src="images/item.jpg" alt=""/>
                        </li>

                        <li class="item3 span4">
                        <img src="images/item.jpg" alt=""/>
                        </li>

                        <li class="item4 span4">
                        <img src="images/item.jpg" alt=""/>
                        </li>

                        <li class="item5 span4">
                        <img src="images/item.jpg" alt=""/>
                        </li>

                        <li class="item6 span4">
                        <img src="images/item.jpg" alt=""/>
                        </li>

                        </div>
                        </ul>

如您所见,我使用的是 TwitterBootsrap 2.X 我很喜欢使用 nth-child 选择器来删除某些 .span 的边距。以便项目在不同的行中正确排列。

【问题讨论】:

  • 你如何识别哪些项目是活动的/选择的?
  • 如果您也发布 HTML,我们可以提供更好的帮助。
  • 您是指“当前”项目吗?即触发 .click() 函数的那个​​?

标签: jquery css filtering


【解决方案1】:

如果您单击的元素是您的活动元素并且current 是您的活动类,那么试试这个:

margin:0px 添加到当前班级。

.current { margin : 0px !important; }

现在将当前类添加到活动元素并将其从同级元素中删除。

$(this).parent().addClass('current'); // add current class to active element 
$(this).parent().siblings().removeClass('current'); // remove active class from sibling elements.

【讨论】:

  • 如果这是他的意思,他可以取出这行:$(this).css('outline', 'none');,然后将其添加到.current 类以及outline:none;
  • 很抱歉发布我的问题不完整。正如您在更新的帖子中看到的那样,摆弄 .current 不会做我需要的,因为这是导航/菜单的一部分
  • 创建一个jsfiddle 以便更好地理解。我仍然无法得到它。
猜你喜欢
  • 1970-01-01
  • 2011-02-22
  • 2014-03-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-20
相关资源
最近更新 更多