【问题标题】:remove class from all other list items从所有其他列表项中删除类
【发布时间】:2010-02-11 19:42:34
【问题描述】:

我在这方面得到了其他人的帮助,但他们的回答有点过于宽泛,无法帮助我......我是 javascript 的新手,所以我无法完全理解他们的答案(我在过去 3 天里尝试过的所有东西都没有奏效。)工作站点在这里:http://www.studioimbrue.com/beta 问题是缩略图,一旦单击它们,它会正确添加 .selected 类,但是当单击另一个时,它无法从任何其他缩略图中删除 .selected 类。如果您能更正我的代码,那就太棒了,如果您想解释我的错误之处,请继续!

$(document).ready(function(){ 
    var activeOpacity   = 1.0,
        inactiveOpacity = 0.6,
        fadeTime = 100,
        clickedClass = "selected",
        thumbs = "#list li";

    $(thumbs).fadeTo(1, inactiveOpacity);

    $(thumbs).hover(
        function(){
            $(this).fadeTo(fadeTime, activeOpacity);
        },
        function(){
            // Only fade out if the user hasn't clicked the thumb
            if(!$(this).hasClass(clickedClass)) {
                $(this).fadeTo(fadeTime, inactiveOpacity);
            }
        });
     $(thumbs).click(function() {
         // Remove selected class from any elements other than this
         var previous = $(thumbs+'.'+clickedClass).eq();
         var clicked = $(this);
         if(clicked !== previous) {
             previous.removeClass(clickedClass);
         }
         clicked.addClass(clickedClass).fadeTo(fadeTime, activeOpacity);
     });
});

【问题讨论】:

标签: javascript jquery


【解决方案1】:

我觉得就这么简单:

$(thumbs).click(function() {
    var li = $(this);
    var alreadySelected = li.hasClass('selected');

    // Remove selected class from any elements other than this
    $('#list li').removeClass(clickedClass).fadeTo(fadeTime, inactiveOpacity);

    li.addClass(clickedClass).fadeTo(((alreadySelected) ? 0 : fadeTime), activeOpacity);
});

您无需计算哪些项目已经具有该类,只需将其从所有项目中删除,然后将其重新添加到已单击的项目中即可。

编辑:这应该消除闪烁。

【讨论】:

  • 我只是这样做了,但还是不行
  • 我知道发生了什么 - 您正在独立于类更改不透明度,因此当您删除它时,拇指仍然完全不透明。我已经修改了上面的代码,试一试。
  • 我也刚刚发现了这个解决方案!现在唯一的事情是,当您单击它时,它会稍微淡入,而不是仅保持 100% 的不透明度。有什么办法可以绕过淡入淡出并保持完全不透明?谢谢,你帮了大忙。
  • 没问题 - 我再次修改了代码,希望 like 的东西应该可以工作(不幸的是,我目前无法对其进行测试)。
  • 它几乎可以在没有闪光灯的情况下工作,但我认为有闪光灯没问题。再次感谢。
【解决方案2】:

如果您指的是人物的缩略图,它们对我来说很好。虽然有些菜单项不起作用。

【讨论】:

  • 是的,菜单还不能正常工作,只有“与陌生人交谈”和“排版哲学”
猜你喜欢
  • 2020-06-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-01
  • 1970-01-01
  • 2021-03-17
相关资源
最近更新 更多