拜托,我有这个代码:
$('#menu ul > li:not(#menu ul.first li, #menu ul.second li)').mouseenter(function() {
$(this).find('a').addClass('active');
$(this).stop(true).find('div.sub').slideDown(500);
}).mouseleave(function() {
$(this).find('a.active').removeClass('active');
$(this).stop(true).find('div.sub:visible').slideUp(100);
})
使用此代码,如果用户从“li”中删除鼠标,我就无法停止开始滑动动画。因此当用户意外地悬停在几个菜单上时,所有子菜单都会打开,并以完整动画关闭,这有点混乱。
我尝试使用“.stop()”,例如“.find('div.sub')。stop()”,它可以工作,但是如果你再次尝试悬停,那么子菜单只显示了一半,如何它第一次出现了。
有没有人有这个解决方案,因为我不能再重新编码:(
谢谢并抱歉我的英语不好:)
答案 0 :(得分:1)
查看hovreIntent插件。它将允许您确定用户是否真的希望将鼠标悬停在某个元素上,或者只是快速将其鼠标悬停在其上,并且可以通过超时,延迟,敏感度等进行配置。