Javascript jQuery.slideUp()效果运行问题

Javascript jQuery.slideUp()效果运行问题,javascript,jquery,Javascript,Jquery,有谁能告诉我为什么效果总是悬停着。我的意思是你悬停3次而不必等待效果完成,然后你可以等到效果运行3次 $(function() { $('#dropdown_nav li').find('.sub_nav').hide(); $('#dropdown_nav li').hover(function() { $(this).find('.sub_nav').slideDown(300);

有谁能告诉我为什么效果总是悬停着。我的意思是你悬停3次而不必等待效果完成,然后你可以等到效果运行3次

   $(function() {
            $('#dropdown_nav li').find('.sub_nav').hide();
            $('#dropdown_nav li').hover(function() {

                $(this).find('.sub_nav').slideDown(300);
            }, function() {

                $(this).find('.sub_nav').delay(2000).slideUp(300);
            });
        });
可以在这里进行测试:

使用
.stop()
将清除动画队列

鼠标移动延迟:

$('#dropdown_nav li').on('mouseenter mouseleave',function( e ) {
    var delayTime = e.type=='mouseleave' ? 1000 : 0;
    $('.sub_nav', this).stop().delay( delayTime ).slideToggle();
});


了解更多信息:

在滑动过程中,再次悬停会破坏效果,并且不会完全向下滑动,这正常吗?@user2036282我编辑了我的答案,刷新了答案,并查看了降级,但您已删除了.delay()和set.slideToggle()。我想在这期间耽搁一下slideUp@user2036282很抱歉,我错过了这一部分,但是使用三元运算符和
e
vent侦听器很容易处理这一部分,请看:
$('#dropdown_nav li').on('mouseenter mouseleave',function( e ) {
    var delayTime = e.type=='mouseleave' ? 1000 : 0;
    $('.sub_nav', this).stop().delay( delayTime ).slideToggle();
});