2015-06-17 3 views
0

Я пытаюсь свернутьToggle, а затем toggleclass, но, добавив toggleclass, slideToggle не «скользит», кто-нибудь знает, как я могу это исправить?slideToggle и toggleClass не работают вместе?

fiddle и код ниже.

$(function() { 
     $(".expand").on("click", function() { 
      $(this).next().slideToggle().toggleClass('slidein'); 

      $expand = $(this).find(">:first-child"); 


      if ($expand.text() == "\u25B6") { 
       $expand.text("\u25BC"); 


      } else { 
       $expand.text("\u25B6"); 
      } 
     }); 

    }); 
+0

Он отлично работает, но вы скрываете элемент, а затем добавляете класс. –

+0

Возможно, вы хотите это: http://jsbin.com/pexabi/edit?html,css,js,output –

ответ

1

Он прекрасно работает, но скрыть элемент, а затем добавить класс, так что вы не можете увидеть toggleClass.

Вы сделали некоторые ошибки в файле CSS и в логике JS. удалите переходы CSS3, и он будет работать нормально.

transition: all 1s ease-in-out; 

Наконец, своего рода код без toggle методов, например:

$(function() { 
    $(".expand").on("click", function() { 

     if($(this).parent().find('.detail').css('display') == 'block'){ 
      $(this).parent().find('.detail').slideUp(); 
      $(this).parent().find('#titles').animate({'left' : -200}); 
     } else { 
      $(this).parent().find('.detail').slideDown(); 
      $(this).parent().find('#titles').animate({'left' : 0}); 
     } 

    }); 

}); 

Смотрите мою рабочую демо: JSBIN. Это то, что вам нужно иметь?

+0

Я не думаю, что вы поняли вопрос. Его по-прежнему то же самое, что и «slideToggle», когда он скользит вверх и вниз, по-прежнему неустойчив. –

+0

Теперь поймите: я удалил переход: все 1-е разблокирование; и он слайд правильно. –

+0

ах дерьмо то, что мне нужно, но я предполагаю, что у вас не могут быть оба? –