我有一个非常简单的悬停菜单,而我试图找出如何处理时机。延迟jQuery的鼠标离开或toggleClass
的目标是500延迟mouseleave
事件,和/或不快速越过其他菜单项反应。
基本功能:
$('.button').on({
mouseenter: function() {
$(this).children('.menu').addClass('open');
},
mouseleave: function() {
$(this).children('.menu').removeClass('open');
},
});
与此的主要问题是该按钮和菜单之间的像素间隙 - 当用户移动朝向菜单鼠标然后触发mouseleave
功能。
第二烦恼是快速经过鼠标按钮同级它们也触发其mouseenter
函数时。
我也试过,但没有反应......
mouseleave: function() {
setTimeout(function() {
$(this).children('.menu').removeClass('open');
}, 500);},
});
和我一直在使用
.delay(500).queue(function(){
$(this).removeClass("open").dequeue();
也尝试过,但似乎不稳定给我。
console.log($.ui.version)
打印1.11.4
谢谢Paul Roub,完美的解决方案和演示! – petergus