2013-07-19 40 views
18

HTML của tôi là:Bootstrap Collapse không chuyển đổi sau khi bạn hiển thị, ẩn hoặc chuyển đổi từ mã

<div id="accordion-container"> 
    <div class="accordion" id="navaccordion"> 
     <div class="accordion-group"> 
      <div class="accordion-heading"> 
       <a class="accordion-toggle" data-toggle="collapse" data-parent="#navaccordion" href="#collapseMenu"> 
        <strong>My Menus</strong> 
       </a> 
      </div> 
      <div id="collapseMenu" class="accordion-body collapse in"> 
       <div class="accordion-inner"> 
        <div class="navigation" id="navigationcontainer"> 
         <span id="menutree"> 
          MenuTree 
         </span> 
        </div> 
       </div> 
      </div> 
     </div> 
     <div class="accordion-group"> 
      <div class="accordion-heading"> 
       <a class="accordion-toggle" data-toggle="collapse" data-parent="#navaccordion" href="#collapseQuickLinks"> 
        <strong>Quick Links</strong> 
       </a> 
      </div> 
      <div id="collapseQuickLinks" class="accordion-body collapse"> 
       <div class="accordion-inner"> 
        <div class="quicklinks" id="quicklinkscontainer"> 
         <span id="quicklinkslist"> 
          QuickLinks 
         </span> 
        </div> 
       </div> 
      </div> 
     </div> 
     <div class="accordion-group"> 
      <div class="accordion-heading"> 
       <a class="accordion-toggle" data-toggle="collapse" data-parent="#navaccordion" href="#collapseQueue"> 
        <strong>Queue</strong> 
       </a> 
      </div> 
      <div id="collapseQueue" class="accordion-body collapse"> 
       <div class="accordion-inner"> 
        <div class="queue" id="queuecontainer"> 
         <span id="queuetree"> 
          Queue 
         </span> 
        </div> 
       </div> 
      </div> 
     </div> 
    </div> 
</div> 

dụ của tôi là ở đây: http://jsfiddle.net/pdavis68/Xut4C/2/

Nếu bạn loại bỏ các mã JavaScript, bạn sẽ nhận thấy rằng việc chuyển đổi của sự sụp đổ hoạt động đúng. Nếu bạn nhấp vào "Liên kết nhanh", "Menu của tôi" sẽ đóng và "Liên kết nhanh" sẽ mở ra.

Nếu bạn rời JS, bạn sẽ thấy rằng mở "My Menus" hoặc "Quick Links" không gây ra bất kỳ điều gì khác sụp đổ, nhưng nếu bạn mở "Hàng đợi", nó vẫn sẽ khiến người khác sự sụp đổ.

Dường như tôi không sử dụng lệnh "chuyển đổi", "hiển thị" hoặc "ẩn" trong khi thu gọn, chức năng này sẽ phá vỡ chức năng chuyển đổi. Ngoài ra, trong ví dụ, những gì nên xảy ra (bằng cách tính toán của tôi, ít nhất) là rằng "My Menus" nên chuyển đổi đóng cửa (mà nó có) và sau đó "Liên kết nhanh" nên chuyển đổi mở (mà nó kHÔNG làm)

Vì vậy, 2 câu hỏi:.

  1. làm thế nào để lập trình cho các nhóm/hide mà không vi phạm các chức năng chuyển đổi?

  2. Làm cách nào để chuyển đổi mọi thứ đang mở?

Trả lời

19

1.Try sử dụng collapse() với các tùy chọn, các 'parent' là quan trọng

$("#collapseMenu").collapse({"toggle": true, 'parent': '#navaccordion'}); 
$("#collapseQuickLinks").collapse({"toggle": true, 'parent': '#navaccordion' }); 

Fiddle: http://jsfiddle.net/hieuh25/Xut4C/6/

2.Basically bạn có 2 cách:

  • Add lớp in đến div đó, ví dụ: <div id="collapseMenu" class="accordion-body collapse in"> khiến div đó mở.

  • Sử dụng collapse() với tùy chọn 'toggle': true như trên, khi div đóng.

Hy vọng điều đó sẽ hữu ích.

+0

Cảm ơn bạn! Đó là chính xác những gì tôi đang tìm kiếm. – Pete

+0

Ditto để cài đặt "cha mẹ".Accordion của tôi chỉ hành xử như vậy trên mỗi sự kiện click khác, và "cha mẹ" giải quyết nó. – mac9416

2

Bạn cũng có thể thêm data-parent="#navaccordion"-<div id="collapseMenu" class="accordion-body collapse" data-parent="#navaccordion"> và gọi mà không cần chìa khóa addional 'parent' như .collapse({"toggle": true});

8

Hãy thử kích hoạt nội dung của bạn là một yếu tố đóng mở đầu tiên. Tôi lướt qua phần này khi đọc tài liệu và nó thực sự làm tôi bối rối.

$('#myCollapsible').collapse({ 
    toggle: false 
}) 

Sau khi kích hoạt, bạn có thể ẩn và hiển thị như bình thường.

$('#myCollapsible').collapse('hide'); 
$('#myCollapsible').collapse('show'); 

http://getbootstrap.com/javascript/#collapse-methods

+0

Điều này thực sự lạ nhưng nó đã giải quyết được vấn đề cho tôi. Sự sụp đổ đã được làm việc khi nhấp vào nút thu gọn/mở rộng mà không kích hoạt thông qua js, nhưng nếu tôi muốn thu gọn/expande thông qua js tôi cần thiết để cũng kích hoạt nó đầu tiên như là một đóng mở. – aeliusd

+0

Điều này cũng giải quyết được vấn đề của tôi. Có vẻ như tôi phải gọi collapse() trên phần tử accordion của tôi như là một loại thủ tục khởi tạo trước khi nó hoạt động đúng. Tôi gọi là 'collapse ({" toggle ": false, ...})' trong thẻ '