2013-05-15 39 views
6

Çeşitli nedenlerle, & belirtilen bir yüksekliğe sahip bir akordeon oluşturdum: gizli ve tıklatıldığında doluyor. Bununla birlikte, gerekli düğmeyi tıkladığımda daraltmayı başaramıyorum.jquery alt akordeon kapanmıyor

$(document).ready(
    function(){ 
     $('li.ww_slides').addClass('livequery').append('<span class="nav"></span>'); 
     $("li.ww_slides").click(function() { 
      $('li.ww_slides').removeClass('active'); 
      $(this).addClass('active'); 
      $('span.nav').addClass('open').css('bottom','0'); 
     }); 

     $("span.open").click(function() { 
      $(this).parent().removeClass('active'); 
     }); 
    } 
); 

Bu, ilgili css geçerli:: Alakalı span.nav.open tıklamasıyla üzerine kapatmak için li.ww_slides olsun nasıl

.ww_main_preview ul li.active { margin-bottom: 10px; padding-bottom: 10px; height: auto!important; } 
.ww_main_preview ul li.active span.nav { background-position: top center; } 
.ww_main_preview ul li.livequery { overflow: hidden; height: 76px; margin-bottom: 10px; padding-bottom: 10px; } 

Bu alakalı JS olduğunu ?

cevap

4

bir tıklama işleyicisi sınıfları değişiyor gibi, olayı temsilci olmalıdır:

$("li.ww_slides").on("click", "span.open", function() { 
    $(this).parent().removeClass('active'); 
}); 

Veya: zarif cevap için

$(document).ready(function(){ 
    $('li.ww_slides') 
      .addClass('livequery') 
      .append('<span class="nav"></span>') 
      .click(function() { 
       $('li.ww_slides').removeClass('active'); 
       $('span.nav').removeClass('open'); 
       $(this).addClass('active') 
        .find('.nav') 
        .addClass('open') 
        .css('bottom','0'); 
      }).on('click', 'span.open', function(event) { 
       event.stopPropagation(); 
       $(this).parent().toggleClass('active'); 
      }); 
}); 
+0

teşekkür ederiz. Yine de işe yaramış gibi görünmüyorum. Bir şey mi eksik? İlk tıklamanın tümüyle geçerli olması, bu nedenle içerideki açıklığın tıklanmamasından kaynaklanabilir mi? – cdb

+0

@cdb Hoş Geldiniz, işe yaradığını bildiğim kadarıyla, http://jsfiddle.net adresinden bir demo sunabilir misiniz? – undefined

+0

İşte burada: http://jsfiddle.net/Rtstc/ Teşekkürler – cdb