2012-06-26 32 views
8

Önyükleme çökmesi eklentisinin geçiş işlevini programsal olarak kullanmaya çalışıyorum. Akordeon başlığı altındaki bağlantıyı tıklattığımda bir div değiştirmeyi başarabilirim, ancak yalnızca bir kez çalışır, yani div'u gizlemek için tekrar tıklayamıyorum.Javascript Bootstrap çökmesi eklentisi ile geçiş yapma

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

şey kaçırdınız mı: JSP

<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> 

Ve daha sonra: İşte

benim kodudur?

cevap

21

Bunun bir çok insan için olduğunu tahmin ediyorum. Eğer (Bilginize ya da herhangi bir önyükleme fonksiyonu) collapse işlev çağrısı bir nesne geçerse

, bu çöküşü başlatmak anlamına gelir. toggle seçeneği, yalnızca numaralı çağrıyı ( (doc) çağırma sırasında değiştirir.

Parametrelerle bir kez aramanız ve ardından yalnızca eylemle birlikte bir dize olarak çağırmanız gerekir.

$.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 
      // ... 
     } 
    ); 
}); 

Canlı tanıtım: Zaten aynı elementin üzerine yapmış eğer iptal eder beri

http://jsfiddle.net/Sherbrow/uycBa/ Sadece hassas olmak, sadece, init süreci bir kez çağırabilir. Bu yüzden sadece bir kez çalıştı.

+0

Aslında şimdi çalıştığını :) şey kaçırdım, çok thants! Gerçekten, geçiş: artık yararlı değil;) – tduchateau

1

Çökmeyi iki kez, bir kez ebeveyn ile ve bir kez olmadan, hileyi oldukça güzel buldum - bu çözüm benim hiyerarşi nedeniyle benim çözümümde tercih edildi. eleman görünür ise

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

Benzer sorun, ben sadece kontrol edin:

$("#myDiv").is(":visible") ? $("#myDiv").collapse('hide') : /*do nothing*/; 
İlgili konular