2010-03-13 35 views
5

Tôi cần thêm một số xử lý mở rộng/thu gọn kiểu accordian vào một loạt các div vùng chứa cha trong ứng dụng của tôi. Đây có phải là thứ quá đơn giản đối với một thư viện như jquery không?Mở rộng/Thu gọn đơn giản divs> JQuery?

Ví dụ:

<div class="handleDiv"> expand | collapse 
    <div>child element</div> 
    <div>child element</div> 
</div> 

<div class="handleDiv"> expand | collapse 
    <div>child element</div> 
    <div>child element</div> 
</div> 
+0

http://docs.jquery.com/UI/Accordion –

+0

là đánh dấu này đặt trong đá, hay bạn có thể kiểm soát nó? ví dụ. Bạn có thể bọc các phần tử con trong div vùng chứa không? –

+0

@Nick: Tôi có toàn quyền kiểm soát nó. –

Trả lời

1

Hãy thử một cái gì đó như thế này:

$('.handleDiv').click(function() { 
    $(this).children().toggle(); 
}); 

Điều đó sẽ mở rộng hoặc ẩn các nội dung của "handleDiv" s bất cứ khi nào bạn bấm vào chúng. Tôi khuyên bạn nên tạo những liên kết "mở rộng | thu gọn" và gắn trình xử lý nhấp chuột vào chúng, để một nhấp chuột ở bất kỳ vị trí nào trong div không chuyển đổi nó.

Nếu bạn muốn họ bắt đầu ra khép kín, một trong hai phong cách họ đóng trong stylesheet của bạn:

.handleDiv div { 
    display: none; 
} 

hoặc thêm một ".hide()" vào cuối của đoạn jQuery vào đầu câu trả lời của tôi .

+0

Tôi nghĩ bạn muốn '.handleDiv div' trên CSS –

+0

Rất tiếc, cảm ơn! Bỏ lỡ điều đó. – bhollis

4

Tôi vừa viết một plugin để làm điều đó.

Xem http://sylvain-hamel.github.io/simple-expand/

+0

Plugin này là tuyệt vời nhưng người mới bắt đầu nên lưu ý rằng kịch bản ' 'nên được đặt ở cuối trang (ngay trước thẻ' '). –

+1

Tôi rất vui khi plugin được trợ giúp. Bạn có thể đặt thẻ tập lệnh này ở bất cứ nơi nào bạn muốn. Nhưng hãy chắc chắn rằng cuộc gọi được bao bọc trong jQuery 'DOM ready' callback:' '. Đây là trường hợp cho mọi thứ liên quan đến jQuery. – Sylvain

+0

Sylvain là chính xác, tuy nhiên như một noob tôi đã phải thử đặt ở nhiều vị trí khác nhau và trong đầu là lần duy nhất nó hoạt động cho tôi. (ví dụ: đặt nó vào một đường ray xé một phần trong trường hợp của tôi đã không hoạt động) – Ben

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