jQuery .stop() ломает последующие анимации

Я пытаюсь сделать аккордеонное меню с помощью jQuery, но оно отказывается сотрудничать: http://jsfiddle.net/vrcpK/1/

Вот мой JavaScript:

$('#submenu div.submenu').hover(function() {
    $('.submenu-head', this).addClass('visible');

    $(this).siblings().each(function() {
        $('div.submenu-body', this).stop(true).slideUp('slow');
        $('p.submenu-head', this).removeClass('visible');
    });

    $('div.submenu-body', this).stop(true).slideDown(500);
}, function() {
    $('.submenu-head', this).removeClass('visible');

    $('div.submenu-body', this).stop(true).slideUp('slow');
});​

При наведении курсора на элемент дважды меню исчезает и медленно уменьшается. После этого он вялым образом раскрывает треть контента.

Я подозреваю, что это проблема с моим .stop(true) звонки, но я не могу придумать какой-либо другой способ удержать меню от желатина после наведения на него мыши.

Любая помощь будет принята с благодарностью!

1 ответ

Решение

Похоже, высота установлена ​​на то, что есть, когда вы зависаете... попробуйте сбросить высоту до автоматического, когда скольжение вверх завершено...

$('div.submenu-body', this).stop().slideUp('slow', function() {
  $(this).height('auto');
});
Другие вопросы по тегам