Javascript 在.blur()上设置超时?
我有一个菜单栏,在悬停时显示一个子菜单栏,单击关闭选项时退出。我想有一个超时选项,以便子菜单在5秒后自动关闭。我试图对失去焦点的主菜单使用.blur(),然后设置超时(function(){},5000);对于超时部分,但事件未触发。有什么建议吗?(setTimeout(function()中包含的代码与手动退出菜单时使用的代码相同)Javascript 在.blur()上设置超时?,javascript,jquery,Javascript,Jquery,我有一个菜单栏,在悬停时显示一个子菜单栏,单击关闭选项时退出。我想有一个超时选项,以便子菜单在5秒后自动关闭。我试图对失去焦点的主菜单使用.blur(),然后设置超时(function(){},5000);对于超时部分,但事件未触发。有什么建议吗?(setTimeout(function()中包含的代码与手动退出菜单时使用的代码相同) 模糊不会在mouseout上触发,但是当元素失去焦点时(以前只是表单元素,现在是任何类型的元素)。您可能想尝试mouseleave或者,更好的方法是mouseou
模糊不会在mouseout上触发,但是当元素失去焦点时(以前只是表单元素,现在是任何类型的元素)。您可能想尝试
mouseleave
或者,更好的方法是mouseout
您的意思是使用mouseout而不是blur吗?blur
只对表单控件元素触发。@MarcellFülöp实际上不是:最近的浏览器将其应用于每种元素。blur字面上的意思是失去焦点。焦点可以通过tab、click、keyb来确定这是一条捷径,等等。
$('#main-nav li a.main-link').blur(function() {
setTimeout(function () {
$('#main-nav li a.main-link').removeClass('active');
$('.sub-links').fadeOut();
$('#sub-link-bar').animate({
height: '0px'
});
$('#main-nav li a.close').fadeOut();
}
, 5000);
});