2012-11-02 4 views
0

버튼을 클릭하면 텍스트를 전환하고 "더 읽기"또는 "덜 읽으세요"라고 말합니다. 내가 다른 버튼을 클릭하면, 나는 이전 버튼이 원래 텍스트로 돌아가슬라이드 토글과 토글시 토글시겠습니까?

HTML "자세한 내용을"좋아하는 것 :

<div class="accordion"> 
    <div class="abtn"> 
    <input id="A-1" type="radio" value="A"> 
    <label class="chars" for="A-1">A</label> 
    <div class="char-more">Learn More</div> 
</div> 
<div class="acontent">Hello I am content A</div> 

<div class="abtn"> 
    <input id="B-1" type="radio" value="B"> 
    <label class="chars" for="B-1">B</label> 
    <div class="char-more">Learn More</div> 
</div> 
<div class="acontent">Hello I am content B</div> 

<div class="abtn"> 
    <input id="C-1" type="radio" value="C"> 
    <label class="chars" for="C-1">C</label> 
    <div class="char-more">Learn More</div> 
    </div> 
    <div class="acontent">Hello I am content B</div> 
</div> 

jQuery를 :

$(".abtn .char-more").click(function(){ 
     $(this).closest('.abtn').nextAll(".acontent").first().slideToggle("fast") 
     .siblings(".acontent:visible").slideUp('fast'); 
     $(this).html("Read Less"); 
     $(this).siblings(".char-more").html("Read More"); 
    }); 

JsFiddle합니다.

+0

'숯불 more' 그런가 ' 서로의 형제 자매. 제안 - 래퍼에 버튼/내용 쌍을 래핑하고 래퍼 내에서'find()'를 사용하십시오. 버튼을 clciked 활성 클래스는 쉽게 그것을 – charlietfl

+0

당신이 제발 조금 정교한 또는 예제를 제공 할 수 취소 할 이전을 찾을 수 있습니다? – user992731

답변

1

다음과 같은 HTML 구조를 사용하고 (있는 경우)가 활성화 이전 모듈을 찾을 방법을 단순화하고 또한 CSS를 사용하여 약간의 스타일을 추가 할 수 있습니다 각 모듈에 활성 클래스를 추가. 그것은 존재하지 않는 디버그 형제 자매하는 것보다 읽어도 좀 더 직관적이고 nestaAll

<div class="widgetWrap"> 
    <div class="abtn"> 
     <input id="A-1" type="radio" value="A"> 
     <label class="chars" for="A-1">A</label> 
     <div class="char-more">Learn More</div> 
    </div> 
    <div class="acontent">Hello I am content A</div> 
</div> 
같은 패턴을 따를 것입니다 귀하의 코드

:

$('.char-more').click(function(){ 
     var $prevActive=$('.activeClass'); 
    $prevActive.removeClass('activeClass').find('.char-more').text("Read Less"); 
    $prevActive.find('.acontent').slideUp(); 
    $(this).text("Read Less") 
      .closest('.widgetWrap').addClass('activeClass').find('.acontent').slideDown(); 

}) 
+0

감사 Charlietfl은, 그러나, 그것은 기능 properly..Here이 바이올린입니다 나던. 당신이하려고하면 당신은 모든 코드를 사용하고 난 내 코드에서 "적은 읽기"대신 중복 된 경우 http://jsfiddle.net/zRqYM/32/ – user992731

+0

활성 클래스를 추가하지 않는 버전이 작동 – charlietfl

+0

"자세히보기" 개봉하지 않는 개별 버튼을 전환하려면 ?? http://jsfiddle.net/zRqYM/34/ – user992731