2013-09-24 2 views
0

jQuery UI를 사용하여 작성한 아코디언이 있습니다. 섹션이 열려 있거나 닫혀 있는지에 따라 위 또는 아래를 가리키는 쉐브론 아이콘이 필요합니다. 문제는 내 jQuery입니다. 적어도 처음에는 그렇습니다. 나는 두 쉐브론이 모두 보이고 한 번 클릭하면 쉐브론이 전혀 변하지 않습니다.아코디언 위치에 따라 위 또는 아래를 가리키는 셰브론 아이콘

jQuery를

$(function() { 

    $(".section a").click(function() { 

      $(".chevron").removeClass("chevron").addClass("up"); 
    }); 
}); 

CSS

.chevron { 
background: url("images/down.png") no-repeat; 
} 

.up { 
background: url("images/up.png"); 
} 

HTML은

당신은 this를 참조 할 필요가
<div class="section"> 
    <a href="#"><div class="tab active"> 
    <span class="chevron"></span><h3>Section 1</h3> 
    </div></a> <!-- tab --> 
+0

는 [jsfiddle (http://jsfiddle.net/) 추가한다. – Alvaro

+0

혼란 스럽지만 jsfiddle에 넣은 코드는 갈매기 모양을하고 있습니다. 나는 jquery UI에서 추측하고 있습니다. 나는 어떻게 그것을 나의 작업 카피에 로컬로 가지고 있지 않은가? http://jsfiddle.net/thomasp423/pcf5d/ – thomasp423

답변

2

그래서 (한 번에 모든 이들의) 당신이 클릭하는 요소를 전환 . $(this)을 받으면 .find을 사용하여 링크 내에서 갈매기 형 수색을 검색 할 수 있습니다.

마지막으로 toggleClass을 사용하여 클래스 상태를 전환 할 수 있습니다. 이렇게하면 링크를 반복적으로 클릭하고 클래스 상태를 전환 할 수 있습니다.

$(function() { 
    //Add down to all .chevrons 
    $(".section a .chevron").addClass('down'); 

    //Toggle up/down classes 
    $(".section a").click(function() { 
     var $chevron = $(this).find('.chevron');     
     $chevron.toggleClass("down up"); 
    }); 
}); 

나서 CSS 대한 올바른 쉐브론 이미지 클래스을 설정 가능한 경우

.chevron.up { background-image('images/up.png'); } 
.chevron.down { background-image('images/down.png'); } 
+0

위와 아래 클래스 토글을 갖고 싶다면 어떻게해야할까요? 그러나 그것으로 시작하십시오. 지금은 스팬의 바깥쪽으로 올라가고 있습니다. – thomasp423

+0

다음은 기본적으로로드 중입니다. http://i.imgur.com/PGtFu4Z.png – thomasp423

+0

답변에있는 코드를 업데이트했습니다. '$ (". section a .chevron")을 사용하여 페이지로드시에 모두에 .down을 추가 할 수 있습니다. addClass ('down'); – Axel

관련 문제