2016-04-11 14 views
0

所以我在這裏有一個簡單的手風琴 - https://jsfiddle.net/fLLbkxcf/ - 這是使用slideToggle顯示和隱藏手風琴的內容。如何使用外部按鈕/控件循環手風琴內容?

$(".accordion_trigger").click(function() { 
    $(this).next(".accordion_holder").slideToggle("slow").siblings(".accordion_holder:visible").slideUp("slow"); 
    $(this).toggleClass("current"); 
    $(this).siblings(".accordion_trigger").removeClass("current"); 
}); 

但是我有我希望能夠循環通過手風琴的不同狀態手風琴(下一個,上一個)下方的一些按鈕。

有沒有人對我應該怎麼解決這個還是可以點我在正確的方向任何線索?

+0

按鈕想訪問tab鍵。然後它可以工作。 –

+0

就拿這裏http://stackoverflow.com/questions/9837175/wizard-with-jquery-accordion-previous-next-buttons – DestinatioN

+0

只需使用一個鎖'的.next()'/'.prev()'獲取下一個/ class的前一個同級元素與'current'類。如果那不返回一個元素,那麼你知道你需要取第一個/最後一個元素。 – CBroe

回答

1

你可以有一個單擊處理程序,在這裏你會發現當前元素,然後導航爲基礎,以是否顯示上一個/下一個元素

$(".accordion_trigger").click(function() { 
 
    $(this).next(".accordion_holder").slideToggle("slow").siblings(".accordion_holder:visible").slideUp("slow"); 
 
    $(this).toggleClass("current"); 
 
    $(this).siblings(".accordion_trigger").removeClass("current"); 
 
}); 
 
$('.acc-ext-trigger').click(function() { 
 
    var $curr = $(".accordion_trigger.current"), 
 
    dir = $(this).data('dir'); 
 
    var $next = $curr[dir == -1 ? 'prevAll' : 'nextAll']('.accordion_trigger'); 
 
    $next = $next.length ? $next : $('.accordion_trigger')[dir == -1 ? 'last' : 'first'](); 
 
    $next.triggerHandler('click'); 
 
});
.accordion_holder { 
 
    display: none; 
 
    background: #dddddd; 
 
    border-bottom: 1px solid black; 
 
} 
 
.accordion_trigger { 
 
    width: 100%; 
 
    background: grey; 
 
    border-bottom: 1px solid black; 
 
} 
 
.accordion_trigger p, 
 
.accordion_holder p { 
 
    margin: 0; 
 
} 
 
/* Clearfix */ 
 

 
.clearfix:after { 
 
    visibility: hidden; 
 
    display: block; 
 
    font-size: 0; 
 
    content: " "; 
 
    clear: both; 
 
    height: 0; 
 
} 
 
.clearfix { 
 
    display: inline-block; 
 
} 
 
.clearfix { 
 
    display: block; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<!-- Accordion 1 --> 
 
<div class="accordion_trigger"> 
 
    <p class="leadin">Accordion Title 1</p> 
 
</div> 
 

 
<div class="accordion_holder"> 
 
    <div class="clearfix"> 
 
    <p>This is a test</p> 
 
    </div> 
 
</div> 
 

 
<!-- Accordion 2 --> 
 
<div class="accordion_trigger"> 
 
    <p class="leadin">Accordion Title 2</p> 
 
</div> 
 

 
<div class="accordion_holder"> 
 
    <div class="clearfix"> 
 
    <p>This is a test</p> 
 
    </div> 
 
</div> 
 

 
<!-- Accordion 3 --> 
 
<div class="accordion_trigger"> 
 
    <p class="leadin">Accordion Title 2</p> 
 
</div> 
 

 
<div class="accordion_holder"> 
 
    <div class="clearfix"> 
 
    <p>This is a test</p> 
 
    </div> 
 
</div> 
 

 
<!-- Accordion controls --> 
 
<a href="#" class="acc-ext-trigger" data-dir="1">Next</a> 
 
<a href="#" class="acc-ext-trigger" data-dir="-1">Previous</a>

+0

https://jsfiddle.net/arunpjohny/1a64Lyk6/ –

+0

嘿@ArunPJohny。非常感謝答案!我想知道你是否可以幫助我完成一項額外的任務?除了上一個/下一個按鈕之外,我還想爲相應的手風琴顯示圖像。你知道我如何顯示/隱藏這個圖片/ div的持有者嗎? https://jsfiddle.net/1a64Lyk6/6/ –

+0

@FrazerFindlater https://jsfiddle.net/arunpjohny/1a64Lyk6/8/ –