【问题标题】:Having two different features using .show() and .hide() without conflicting eachother使用 .show() 和 .hide() 具有两个不同的功能,而不会相互冲突
【发布时间】:2012-10-02 04:27:50
【问题描述】:

请看这里:http://jsfiddle.net/mAMY2/1/

如您所见,有一个过滤器功能以及一个“显示更多”功能。我想更改“显示更多”功能的方式,以避免与过滤器功能冲突。例如,也许有 .show() 和 .hide() 的替代方案?

冲突总结:

“显示更多”功能和“过滤”功能均通过 操纵显示值。例如,如果只有三个 显示九个框,您选择过滤特定类别, 可能会显示三个以上的框。同样,如果您选择仅 > 显示特定类别,但随后希望显示更多,则其他类别也将 ?> 显示。

谢谢

【问题讨论】:

  • 你能说清楚一点吗?
  • $('.filter-cat1 a').click(function(){ $('.cat2').hide(); $('.cat1').show(); }); $('.filter-cat2 a').click(function(){ $('.cat1').hide(); $('.cat2').show(); }); $('.all a').click(function(){ $('.box').show(); }); jsfiddle.net/mAMY2/1
  • .show() 的替代方案是 .attr("style", "'display:inline;'") 和 .hide() 的替代方案是 .attr("style", "'显示:无;'")
  • 不知道怎么比显示代码更清晰?我总结了冲突,并且在使用 jsfiddle 上的功能时非常清楚。有什么不清楚的请告诉我,谢谢
  • 我认为您对词汇和语法的不那么简单的使用使本来应该很简单的问题变得复杂,记住这个论坛是国际化的

标签: javascript jquery css filter show-hide


【解决方案1】:

您可以使用 .addClass.removeClass,然后使用 css 控制可见性。

【讨论】:

  • 这个主意不错,我马上试试
【解决方案2】:

如果我理解正确,当您单击“显示更多”时,您期望选择相同的类别框,该类别框仅应显示不全部,然后您可以使用它,我认为这不是一个好方法,因为如果类别增加,那么如果条件。但至少你有一个想法

var cat=0;
$('#showMore a').click(function(){
    if(cat==0)
     $('.box:hidden:lt(3)').animate({height: 'toggle'}, 500);
    if(cat==1)
     $('.box cat1:hidden:lt(3)').animate({height: 'toggle'}, 500);
    if(cat==2)
     $('.box cat2:hidden:lt(3)').animate({height: 'toggle'}, 500);
});

【讨论】:

    猜你喜欢
    • 2016-04-03
    • 1970-01-01
    • 2022-11-30
    • 1970-01-01
    • 1970-01-01
    • 2022-09-24
    • 2011-05-19
    • 2019-08-07
    • 1970-01-01
    相关资源
    最近更新 更多