2010-02-11 3 views
4

다른 사람들로부터 도움을 받았지만 답변이 너무 넓어서 ... 저는 자바 스크립트에서 newb로 사용할 수 없으므로 꽤 답답합니다. (지난 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 –

답변

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

방금 ​​해봤지만 아직 작동하지 않습니다. (haha 시도해 주셔서 감사합니다.) 또한 #list li 대신 heirarchy를 사용하여 시도했습니다. .thumbscontainer ul li을 사용 했는데도 작동하지 않았다.) – steve

+0

나는 무엇이 일어나고 있는지보고있다. 클래스와는 독립적으로 불투명도를 바꾸고 있기 때문에, 그것을 제거하면 엄지 손가락은 여전히 ​​완전히 불투명하다. 위 코드를 수정했다. 그것을 시도해보십시오. –

+0

방금 ​​해결책을 발견했습니다! 클릭 할 때 유일한 것은 100 % 불투명도를 유지하는 대신 약간 페이드 인합니다 .fadeIn을 우회하는 방식으로 전체 불투명도를 유지합니까? 감사합니다. 매우 도움이되었습니다. – steve

0

사람의 미리보기 이미지를 언급하는 경우 저에게 잘 작동합니다. 일부 메뉴 항목은 작동하지 않지만.

+0

예, 메뉴가 올바르게 작동하지 않습니다. "낯선 사람과 이야기하십시오"및 "타이포그래피 철학" – steve

관련 문제