jQuery .stop()打破后续动画

时间:2012-03-03 07:34:33

标签: javascript jquery html jquery-ui-accordion

我正在尝试使用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 个答案:

答案 0 :(得分:2)

似乎将高度设置为悬停时的任何位置...尝试在向上滑动时将高度重置为自动...

$('div.submenu-body', this).stop().slideUp('slow', function() {
  $(this).height('auto');
});