2012-06-26 19 views
8

मैं बूटस्ट्रैप पतन प्लगइन प्रोग्रामेटिक रूप से टॉगल फ़ंक्शन का उपयोग करने का प्रयास करता हूं। जब मैं एग्रीजन-हेडिंग में लिंक पर क्लिक करता हूं तो मैं एक div टॉगल करता हूं लेकिन यह केवल एक बार काम करता है, जिसका कहना है कि मैं div को छिपाने के लिए फिर से क्लिक नहीं कर सकता।बूटस्ट्रैप पतन प्लगइन के साथ जावास्क्रिप्ट टॉगल

$.each($('#accordion a.accordion-toggle'), function(i, link){ 
    $(link).on('click', 
     function(){ 
      // ... 
      $('#collapse' + id_of_a_bean).collapse({ 
       toggle : true, 
       parent : '#accordion' 
      }); 
      // ... 
     } 
    ) 
}); 

मैं कुछ वंचित रह गए हैं:

<div id="accordion" class="accordion"> 
    <div class="accordion-group"> 
     <div class="accordion-heading"> 
      <a id="program${bean.id}" data-parent="#accordion" 
        class="accordion-toggle"> 
      ... 
      </a> 
     </div> 
     <div id="collapse${bean.id}" class="accordion-body collapse"> 
      <div class="accordion-inner"> 
      ... 
     </div> 
    </div> 
</div> 

और बाद में JSP में:

यहाँ मेरी कोड है?

उत्तर

21

मुझे लगता है कि यह बहुत से लोगों के साथ हुआ।

जब आप collapse समारोह (FYI या किसी बूटस्ट्रैप समारोह) कहते हैं, यदि आप एक वस्तु पारित इसका मतलब है कि आप आरंभ पतन। toggle विकल्प केवल पर आमंत्रण (doc) पर टॉगल करता है।

आपको पैरामीटर के साथ एक बार कॉल करना होगा, और उसके बाद केवल स्ट्रिंग के रूप में कार्रवाई के साथ कॉल करना होगा।

$.each($('#accordion a.accordion-toggle'), function(i, link){ 
    var $collapsible = $('#collapse' + id_of_a_bean); // Let's be thorough 

    $collapsible.collapse({ 
     toggle : true, // May not be necessary anymore 
     parent : '#accordion' 
    }); 

    $(link).on('click', 
     function(){ 
      // ... 
      $collapsible.collapse('toggle'); // Here is the magic trick 
      // ... 
     } 
    ); 
}); 

लाइव डेमो: http://jsfiddle.net/Sherbrow/uycBa/

बस सटीक होना करने के लिए, आप केवल एक बार init प्रक्रिया कॉल कर सकते हैं, क्योंकि यह रोकता है, तो आप पहले से ही एक ही तत्व पर यह किया है। यही कारण है कि यह केवल एक बार काम किया।

+0

वास्तव में, मैं कुछ :) अब यह काम करता है याद आती थी, एक बहुत thants! दरअसल, टॉगल: सत्य अब और उपयोगी नहीं है;) – tduchateau

1

मैंने पाया कि केवल दो बार पतन का आह्वान करते हुए, माता-पिता के साथ और एक बार बिना, चाल काफी अच्छी तरह से होती है - यह समाधान पदानुक्रम के कारण मेरे समाधान में बेहतर था।

onclick=" 
$('@("#collapse" + lead.LeadId)').collapse({parent: '#accordion', toggle: true}); 
$('@("#collapse" + lead.LeadId)').collapse('toggle');" 
2

इसी समस्या, मैं सिर्फ जाँच करता है, तो तत्व दिखाई दे रहा है:

$("#myDiv").is(":visible") ? $("#myDiv").collapse('hide') : /*do nothing*/; 
संबंधित मुद्दे