2017-02-05 2 views
-1

Я хотел бы спуститься по моей ul при нажатии, что обычно скрыто css. Если я добавлю класс «.open» перед слайдом, то длительность «500» не будет работать, но если я установилTimeOut для addClass («open») для «500», то он не скользит вниз, пока истекает время setTimeOut. Как я могу синхронизировать эти два, так что это не задерживает открытие, и даже не открывает его без длительности 500?Как синхронизировать slideDown и addClass, чтобы анимация работала правильно?

if(!jQuery(this).parent().hasClass("open")){ 
    jQuery(this).parent().addClass("open").children("ul").slideDown(500); 
} 
li:not(.open)>ul { 
    display: none; 
    max-height: 0; 
} 

Это версия, где он появляется без анимации.

+0

Целью стек Snippets является, чтобы позволить вам показать ** ** готовые к выполнению примеров вашей проблемы. Вышеизложенное не выполняется; делая его выполнимым, добавляя другие необходимые бит, поможет вам получить ответы. –

+1

Все методы эффекта jQuery имеют завершающие обратные вызовы. См. Docs – charlietfl

+0

'jQuery (this) .parent(). AddClass (" open "). Children (" ul "). Hide(). SlideDown (500);' теперь это работает намного лучше, однако это не самое подходящее решение для сначала покажите его с помощью css, а затем сразу же спрячьте его, чтобы он сместился вниз. – sklrboy

ответ

0

Следующий код ниже разрешил мой вопрос:

Смежные вопросы