2012-05-17 34 views
11

có cách nào để nắm bắt khi menu thu gọn xuất hiện (hoặc khi người dùng nhấp vào nút thu gọn) không?Twitter Bootstrap 2 khi sự kiện thu gọn

Tôi đang sử dụng khung và lớp học chuẩn bootstrap twitter.

+0

Bạn muốn nắm bắt những sự kiện sụp đổ trên toàn bộ tài liệu của bạn hay chỉ là một phần/đơn cụ thể? –

Trả lời

2

TWITTER bootstrap 2

Dường như các plugin được thêm lớp "trong" nhóm sụp đổ hoạt động. Vì vậy, có lẽ bạn có thể làm một cái gì đó như thế.

if($('#collapseOne').hasClass('in')){ 
..do something 
} 

EDIT:

Được rồi, tôi không có anyway thử nghiệm ngay bây giờ, vì vậy đây là những loại chỉ đoán. Tôi chắc chắn bạn có thể dễ dàng xác định thời điểm liên kết thu gọn được nhấp bằng cách thực hiện việc này.

$('.accordion-toggle').click(function(){ 
    console.log('clicked'); 
}); 

Tuy nhiên nếu bạn muốn biết chính xác cái nào đã được nhấp, bạn có thể sẽ phải lập chỉ mục chúng.

+0

uhm không hoạt động .. – sbaaaang

+0

không hoạt động trong Bootstrap 3.0 –

+0

BS 3.0 có bốn sự kiện 'show.bs.collapse',' shown.bs.collapse', 'hide.bs.collapse' và' hidden.bs. sụp đổ ' – Pierre

9

Sử dụng "thể hiện" sự kiện handler:

$("#accordion").on("shown",function(event){ 
     collapse_element = event.target; 
    }); 

Tham khảo: http://twitter.github.com/bootstrap/javascript.html#collapse để xem các sự kiện khác được hỗ trợ

+0

Thật không may mặc dù tôi đã thành công với một accordion với sự kiện này làm việc trong [fiddle] (http://jsfiddle.net/RobbSadler/Td47n/) nó dường như không muốn làm việc trong Bootstrap 3.0, và liên kết được cung cấp bây giờ đã bị hỏng. Tiếp tục tìm kiếm ... –

3

Nếu bạn muốn sử dụng giảm bớt hoạt hình với sự thay đổi của biểu tượng bạn cần làm điều này trên show/hide.

Trong ví dụ này, tôi đang sử dụng 2.3.2 bootstrap, jQuery 1.8.3, và Font tạo ảnh vui nhộn 3.2.1

HTML:

<div id="accordion" class="accordion"> 
    <div class="accordion-group"> 
    <div class="accordion-heading"> 
     <a data-item-id="{id}" href="#something" data-parent="#accordion" 
     data-toggle="collapse" class="accordion-toggle"> 
     <i class="icon icon-expand-alt"></i> {title}</a> 
    </div> 
    <div data-item-id="{id}" class="accordion-body collapse" id="something"> 
     <div class="accordion-inner"> 
     {Content} 
     </div> 
    </div> 
    </div> 
... {additional panels} 
</div> 

js:

$('#accordion').on('show hide', function (e) { 
    var oTarget = $(e.target); 
    var oIcon = $('i', $('a[data-item-id="' + oTarget.attr('data-item-id') + '"]')); 
    oIcon.toggleClass('icon-expand-alt icon-collapse-alt', 200); 
}); 
33

Trong bootstrap 3.x, bốn sự kiện bạn đang tìm kiếm là:

show.bs.collapse 
shown.bs.collapse 
hide.bs.collapse 
hidden.bs.collapse 

Chúng kích hoạt trên phần tử DOM mục tiêu dữ liệu, ví dụ: sau mark-up:

<div role="navigation" class="navbar navbar-inverse"> 
    <div class="container"> 
    <div class="navbar-header"> 
     <button type="button" data-toggle="collapse" data-target=".navbar-collapse" class="navbar-toggle"> 
     <span class="sr-only">Toggle navigation</span> 
     <span class="icon-bar"></span> 
     <span class="icon-bar"></span> 
     <span class="icon-bar"></span> 
     </button> 
     <a href="#" class="navbar-brand">Title</a> 
    </div> 
    <div class="collapse navbar-collapse"> 
     <ul class="nav navbar-nav"> 
     <li id="item1"><a href="#item1">Menu Item 1</a></li> 
     </ul> 
    </div> 
    </div> 
</div> 

Bạn muốn nghe (trong jQuery) thông qua:

$('.navbar-collapse').on('shown.bs.collapse', function() { alert('shown'); }); 
$('.navbar-collapse').on('hidden.bs.collapse', function() { alert('hidden'); }); 
+0

Cảm ơn bạn yếu tố không rõ ràng trong tài liệu. –

+4

Điều này sẽ được đánh dấu là câu trả lời ... – Assimilater

+1

Người hỏi đang tìm kiếm trợ giúp với Bootstrap 2, chứ không phải 3 –

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