Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Firefox5中,jQuery slideDown()在子列表项中启动一系列动画_Jquery_Slidedown_Slideup_Mouseenter_Firefox 5 - Fatal编程技术网

在Firefox5中,jQuery slideDown()在子列表项中启动一系列动画

在Firefox5中,jQuery slideDown()在子列表项中启动一系列动画,jquery,slidedown,slideup,mouseenter,firefox-5,Jquery,Slidedown,Slideup,Mouseenter,Firefox 5,我使用jQuery创建了一个下拉菜单。因此,当我将鼠标悬停在按钮上时,它会在菜单上向下滑动。现在,如果我将鼠标移出菜单,并在它向上滑动(菜单有很多项,因此有足够的时间将鼠标移回菜单)到下拉菜单上之前将其移回,它将启动一系列slideDown()和slideUp()函数,直到我移动菜单的鼠标或移回按钮,它才会停止。下面是我的jQuery代码: $(function() { $('#slideshow1').cycle(); $('#projects').mouseenter(

我使用jQuery创建了一个下拉菜单。因此,当我将鼠标悬停在按钮上时,它会在菜单上向下滑动。现在,如果我将鼠标移出菜单,并在它向上滑动(菜单有很多项,因此有足够的时间将鼠标移回菜单)到下拉菜单上之前将其移回,它将启动一系列slideDown()和slideUp()函数,直到我移动菜单的鼠标或移回按钮,它才会停止。下面是我的jQuery代码:

$(function() {
    $('#slideshow1').cycle();  

    $('#projects').mouseenter(function(){
        $('#dd_Projects').slideDown();
    });  

    $('#projects').mouseleave(function(){
        $('#dd_Projects').slideUp();
    });
});
我一直在网上寻找,我已经尝试过e.stopPropagation(),但它不起作用

这只发生在Firefox中,在IE7、IE8、Safari、Chrome中一切正常,但不确定Firefox的其他版本

请建议你应该做你想做的事。传入
true
作为清除动画队列的第一个参数。您可能不想跳到动画的末尾,因此不要将true作为第二个参数传递

比如:

$('#dd_Projects').stop(true).slideDown('fast', function(){
    $(this).css('height', '');
});

取代当前幻灯片的是,你应该做到这一点。

应该做到你想要的。传入
true
作为清除动画队列的第一个参数。您可能不想跳到动画的末尾,因此不要将true作为第二个参数传递

比如:

$('#dd_Projects').stop(true).slideDown('fast', function(){
    $(this).css('height', '');
});


代替您当前的幻灯片,您应该可以做到这一点。

请参阅,谢谢您的回复。它起了一点作用,但有一个问题。现在菜单不会像以前一样疯狂,但是现在如果我移出菜单并返回,当我将鼠标移回菜单时,菜单动画会停止在任何位置,但是如果我将鼠标悬停在按钮上,它不会滑下整个菜单,它向下滑动,直到我早些时候把鼠标带回来时的位置…希望我能用更好的语言解释…有意义吗?啊,我想我明白你的意思了。如果停止向下滑动,它将保留高度数据集。你需要澄清这一点。我会相应地更新我的答案。你太棒了!!成功了!不过,我做了一点修改,对于slideUp,而不是我指定的高度display:none。现在,它在所有浏览器中都能完美工作。非常感谢你$('dd_Projects').stop(true).slideUp('slow',function(){$(this).css('display','none');});我认为slideUp将设置显示:无;无论如何高度重置在那里,以便在完成滑动时清除高度。如果没有此选项,则会发生以下情况:如果向下滑动并使用slideUp中断,则高度数据将保留在中断时的任何位置。如果您再次向下滑动,它将滑动到高度值(不是一直滑动),然后slideDown回调将触发,从而移除高度,导致物体一直向下“跳跃”。如果在slideUp完成时也清除了height,则不会发生这种情况。你完全正确,不需要css,display:none。你的代码工作完美!再次感谢!谢谢你的回复。它起了一点作用,但有一个问题。现在菜单不会像以前一样疯狂,但是现在如果我移出菜单并返回,当我将鼠标移回菜单时,菜单动画会停止在任何位置,但是如果我将鼠标悬停在按钮上,它不会滑下整个菜单,它向下滑动,直到我早些时候把鼠标带回来时的位置…希望我能用更好的语言解释…有意义吗?啊,我想我明白你的意思了。如果停止向下滑动,它将保留高度数据集。你需要澄清这一点。我会相应地更新我的答案。你太棒了!!成功了!不过,我做了一点修改,对于slideUp,而不是我指定的高度display:none。现在,它在所有浏览器中都能完美工作。非常感谢你$('dd_Projects').stop(true).slideUp('slow',function(){$(this).css('display','none');});我认为slideUp将设置显示:无;无论如何高度重置在那里,以便在完成滑动时清除高度。如果没有此选项,则会发生以下情况:如果向下滑动并使用slideUp中断,则高度数据将保留在中断时的任何位置。如果您再次向下滑动,它将滑动到高度值(不是一直滑动),然后slideDown回调将触发,从而移除高度,导致物体一直向下“跳跃”。如果在slideUp完成时也清除了height,则不会发生这种情况。你完全正确,不需要css,display:none。你的代码工作完美!再次感谢!