【发布时间】:2015-11-04 14:33:39
【问题描述】:
我有八张卡片,每张卡片都有两个参数。第一个参数是年份(2011、2012、2013、2014),第二个参数是类别(工作室、房子、个人、商业)。它看起来像这样:
- 工作室 2011
- 房子 2012
- 商业 2013
- 个人 2012
- 工作室 2014
- 商业 2011
- 房子 2014
- 个人 2013
我需要整理它们,使需要的卡片变亮,而不需要褪色。默认情况下,它们都是明亮的。 HTML:
<div class="card card-studio card-2011 card-bright">Studio 2011</div>
<div class="card card-house card-2012 card-bright">House 2012</div>
<div class="card card-commercial card-2013 card-bright">Commercial 2013</div>
<div class="card card-personal card-2012 card-bright">Personal 2012</div>
<div class="card card-studio card-2014 card-bright">Studio 2014</div>
<div class="card card-commercial card-2011 card-bright">Commercial 2011</div>
<div class="card card-house card-2014 card-bright">House 2014 </div>
<div class="card card-personal card-2013 card-bright">Personal 2013</div>
我添加了带有年份的按钮:
<a href="#" class="button button-2011">2011</a>
<a href="#" class="button button-2012">2012</a>
<a href="#" class="button button-2013">2013</a>
<a href="#" class="button button-2014">2014</a>
当用户单击年份按钮时,我们会获取带有所需年份等级的卡片并删除它们的“明亮/褪色”等级以防万一。然后我们为这些卡片添加“明亮”类。然后我们取出所有不需要年份的卡片并添加它们“褪色”类(也删除以前的类以防万一)。我们还使按钮带下划线,而它的兄弟不带下划线。一切看起来像这样:
$(".button").on("click", function(event){
event.preventDefault();
if($(this).hasClass("button-2011")){
$(".card-2011").removeClass("card-bright card-faded").addClass("card-bright");
$(".card").not(".card-2011").removeClass("card-bright card-faded").addClass("card-faded");
$(this).siblings().removeClass("button-active").end().addClass("button-active");
}
JSfiddle:https://jsfiddle.net/6vLzyowc/
现在看起来一切都很简单,但是当我尝试添加第二个排序条件类别时出现了问题。
一方面,我当然需要做同样的事情,就像第一种情况一样,我。 e.使需要的类别变亮,不需要的变暗:
if($(this).hasClass("button-house")){
$(".card-house").removeClass("card-bright card-faded").addClass("card-bright");
$(".card").not(".card-house").removeClass("card-bright card-faded").addClass("card-faded");
}
但它会使所有需要类别的卡片“变亮”,而且我也有前一年的排序结果。看来我需要先把它们整理出来。因此,我将第一年的排序结果(即“明亮”卡片)制作成不需要的类别“褪色”:
if($(this).hasClass("button-house")){
$(".card-bright").not("card-house").addClass("card-faded");
}
它有点帮助,但我现在仍然不知道如何将剩余的卡片添加到所需的类别中,以便满足两个条件。那么,如何将对以前的排序结果排序和对所有项目进行排序结合起来呢?
【问题讨论】:
-
您对“排序”一词的使用令人困惑;真的有任何实际的排序(重新排序)吗?
-
我认为它们的意思是“过滤器”。
-
重新发明 rabio 按钮。
-
我只需要与第一个小提琴相同的行为,但有两个条件。没有重新排序。
-
我回答了,但忘记了一些事情,我正在努力,会报告:)
标签: javascript jquery html css sorting