2010-02-11 74 views
4

我已经得到了其他人的帮助,但他们的回复有点过于宽泛,无法帮助我......我是一个新手,当谈到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); 
    }); 
}); 
+0

如果您对东西不熟悉,请尽可能多地阅读文档并尝试使用示例。这是jQuery的开始:http://docs.jquery.com/How_jQuery_Works – 2010-02-11 11:19:08

回答

2

我认为它是如此简单:

$(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); 
}); 

你并不需要计算该项目已经具备了一流的,刚刚从所有的人都将其删除然后重新添加到一个被点击。

编辑:这应该消除闪烁。

+0

我只是做了这一点,它仍然没有工作:(感谢您试用哈哈 我也尝试了用层次结构(而不​​是使用#list里我二手.thumbscontainer UL李和没有任何工作) – steve 2010-02-11 11:18:50

+0

我看到发生了什么 - 你改变独立于类的不透明性,所以当你删除它的拇指仍然是完全不透明的我已经修改了上面我的代码,试试看。 – 2010-02-11 11:30:51

+0

我刚刚发现,解决方案,以及!现在唯一的事情是,当你点击它确实有点掉色回,而不是在100%的不透明度只剩余。绕过淡入任何办法,只是保持完全不透明?谢谢你,你已经非常有帮助 – steve 2010-02-11 11:33:08

0

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

+0

是,菜单无法正常工作呢,只有“别跟陌生人说话”和“印刷术的哲学” – steve 2010-02-11 11:24:26

相关问题