1

我使用 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。

请指教

4

1 回答 1

1

jQuery 的停止功能应该做你所追求的。true作为第一个参数传入以清除动画队列。您可能不想跳到动画的末尾,所以不要将 true 作为第二个参数传递。

所以像:

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

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

代替您当前的幻灯片应该可以解决问题。

于 2011-06-23T14:33:39.877 回答