延迟后淡出 jQuery 菜单
我正在开发一个 jQuery 下拉菜单,当您将鼠标悬停在顶级项目上时,该菜单会淡出。我想设置它,以便当您将鼠标移开时菜单不会立即消失。我有这样的代码:
$(document).ready(function(){
$('ul#menu > li').hover(
// mouseover
function(){
$(this).find('>ul').fadeIn('fast');
},
// mouseout
function(){
setTimeout( function(){
alert('fadeout');
$(this).find('>ul').fadeOut('fast')
}, 1000 );
}
);
});
一秒钟后警报发生,但菜单没有淡出。
I'm working on a jQuery drop-down menu that fades in when you hover on the top-level items. I want to set it so that when you move the mouse away the menu doesn't disappear instantly. I have this code:
$(document).ready(function(){
$('ul#menu > li').hover(
// mouseover
function(){
$(this).find('>ul').fadeIn('fast');
},
// mouseout
function(){
setTimeout( function(){
alert('fadeout');
$(this).find('>ul').fadeOut('fast')
}, 1000 );
}
);
});
After a second the alert happens, but the menu isn't faded out.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
window.setTimeout(),所以this指的是window对象。
window.setTimeout(), so this refers to the window object.
看看hoverIntent。通过配置,您可以更好地控制
mouseover
/mouseout
事件的行为:Have a look at hoverIntent. It'll give you greater control of the behaviour of the
mouseover
/mouseout
events by configuration: