如何在鼠标退出事件完成之前强制鼠标悬停事件触发

How to force mouseover event to fire before mouseout event completes

本文关键字:鼠标 悬停 事件 退出 出事件      更新时间:2023-09-26

我正在使用jquery来制作一个简单的下拉效果。当用户将鼠标悬停在触发元素上时,下拉框将立即出现,当鼠标离开触发元素时,下拉框将淡出。

$('ul > li').hover(function(){
    $(this).find('#dropDown').show();
},function(){
    $(this).find('#dropDown').fadeOut(1000);
});

正如您将在此小提琴中看到的那样,问题是,如果鼠标悬停事件(下拉框淡出)尚未完成,则不会触发鼠标悬停事件(出现下拉框)。有谁知道是否有办法强制显示下拉框,无论淡入淡出是否已完成?

只需使用 .finish() 即可完成上一个动画:

$('ul > li').hover(function(){
    $(this).find('#dropDown').finish().show();
},function(){
    $(this).find('#dropDown').fadeOut(1000);
});

小提琴。