2010-01-15 6 views
2

사용자가 디자인 한 콘텐츠 블록을 바닥 글에 넣을 ExpressionEngine 웹 로그가 있습니다. 그러나 단 한 번에 하나씩 보여줄 것입니다.표시/숨기기와 관련된 문제 JavaScript

내 HTML은 다음과 같습니다

<ul class="footernav"> 
    <li class="first"><a class="active" href="#">Get in touch</a></li> 
    <li><a href="#">Interested in joining?</a></li> 
    <li><a href="#">Feedback</a></li> 
    <li><a href="#">Link 4</a></li> 
</ul> 
<div class="copy gutters show"> 
    <p>Lorem Ipsum</p> 
</div> 
<div class="copy gutters hide"> 
    <p>Lorem Ipsum</p> 
</div> 
<div class="copy gutters hide"> 
    <p>Lorem Ipsum</p> 
</div> 

내가 클릭 링크를 따라 숨기기 클래스 쇼 클래스를 전환하려는. 내가 어떻게 이것을 성취 할 수 있는지 확신하지 못한다. ExpressionEngine에서 사용자가 정의하므로 N 개의 콘텐츠 블록을 처리 할 수있을만큼 유연해야합니다.

저는 JavaScript에 대해 아주 새로운 브랜드입니다. 그래서 나는 이것을 달성 할 수있는 방법에 대한 통찰력이나 해결책을 정말로 고맙게 생각합니다.

답변

3

나는 이것이 당신의 구조 작업을 것이라고 생각 :

// Cycle through each link in our ul.footernav element 
$(".footernav a").each(function(i,o){ 
    // Attach click-logic to each link 
    $(this).click(function(e){ 
    // Prevent page from bouncing, reloading, etc. 
    e.preventDefault(); 
    // Add .active class to this, but remove from all other links 
    $(this).addClass("active").closest("li").siblings("li").find("a").removeClass("active"); 
    // Show any DIV having class .copy and same index as clicked link 
    // meaning, clicking the second link will show the second div 
    $("div.copy:eq("+i+")").show().siblings("div.copy").hide(); 
    }); 
}); 

데모 온라인 : 도움을 http://jsbin.com/ekecu

+0

감사합니다! 이것은 아직 작동하지 않지만 그것을보기 시작합니다. 어떤 링크가 어떤 콘텐츠 블록을 표시해야 하는지를 알려주는 특정 식별자가 필요하지는 않습니까? 내가 그것을 어떻게 할 수 있는지에 대한 해결책? –

+0

알 수없는 "식별자"는 링크가 나타나는 순서입니다. 첫 번째 링크는 첫 번째 div를 토글합니다. 두 번째 링크는 두 번째 div 등을 토글합니다. 이것은 작동합니다 - 솔루션 하단의 "Demo Online"을 확인하십시오. – Sampson

+0

흠. JsBin 예제에서 필요한만큼 정확하게 작동하는 것 같습니다. 그러나 정확한 스 니펫 (snippet)을 성공적으로 사용하면 구현할 때 이상하게 작동합니다 (로컬 EE를 설치하거나 링크 할 것입니다). 목록의 마지막 링크에서만 작동하는 것 같습니다. 예제의 경우, 링크 4. 마지막 링크가 활성화되면 직전 링크가 첫 번째 내용 블록을 활성화합니다. 이견있는 사람? –