2012-03-03 34 views
9

Làm cách nào để xử lý có điều kiện khi phần accordion mở. Những gì tôi yêu cầu là điều này (trong mã giả):Phát hiện jquery-ui accordion trạng thái mở/đóng

if (this-accordion-section-open){ 
    do something 
} 
else { 
    do something else 
} 

Tôi đang tìm một cái gì đó như: là vô hình.

Cảm ơn sự giúp đỡ của bạn.

Trả lời

12

sau mã trở lại bạn bảng điều khiển hoạt động,

var active = $(".selector").accordion("option", "active"); 
+1

Cảm ơn, đây có lẽ là cách tiếp cận tốt nhất. –

2

từ demo site, tôi nhận thấy có một lớp học ui-state-active trên phần đã mở. Vì vậy, bạn có thể sử dụng jQuery.hasClass cho mã của bạn ...

+0

Điều này hoạt động tốt. –

2

Cấu trúc HTML cơ bản của accordion là:

<h3> 
    <a>...</a> 
</h3> 

Con đường tôi đã thực hiện nó trong quá khứ là gán một lớp học để các thẻ như vậy :

<h3> 
    <a class="my_accordion">...</a> 
</h3> 

jQuery UI gán các lớp khác nhau cho thẻ dựa trên trạng thái của nó.

if($('.my_accordion').parent('h3').hasClass('ui-state-active')) { 
    // accordion is open 
} 
else { 
    // accordion is closed 
} 
+0

Tác phẩm này quá. – TheByeByeMan

-2

Giải pháp cho liên kết nhấp hiện nay là kích hoạt:

HTML Mã

<div id="accordion"> 

    <div> 
     <h2><a href="#services">Services</a></h2> 
     <p>More information about all of these services</p> 
    </div> 

    <div> 
     <h2><a href="#about">About</a></h2> 
     <p>About us</p> 
    </div> 

</div> 

Jquery Mã số:

<script type="text/javascript"> 
$(function(){ 
$("#accordion").accordion({ header: "h2", navigation: true }); 
}); 
</script> 
+0

Để cải thiện chất lượng bài đăng của bạn, vui lòng bao gồm cách/tại sao bài đăng của bạn sẽ giải quyết được vấn đề. –

Các vấn đề liên quan