Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在.blur()上设置超时?_Javascript_Jquery - Fatal编程技术网

Javascript 在.blur()上设置超时?

Javascript 在.blur()上设置超时?,javascript,jquery,Javascript,Jquery,我有一个菜单栏,在悬停时显示一个子菜单栏,单击关闭选项时退出。我想有一个超时选项,以便子菜单在5秒后自动关闭。我试图对失去焦点的主菜单使用.blur(),然后设置超时(function(){},5000);对于超时部分,但事件未触发。有什么建议吗?(setTimeout(function()中包含的代码与手动退出菜单时使用的代码相同) 模糊不会在mouseout上触发,但是当元素失去焦点时(以前只是表单元素,现在是任何类型的元素)。您可能想尝试mouseleave或者,更好的方法是mouseou

我有一个菜单栏,在悬停时显示一个子菜单栏,单击关闭选项时退出。我想有一个超时选项,以便子菜单在5秒后自动关闭。我试图对失去焦点的主菜单使用.blur(),然后设置超时(function(){},5000);对于超时部分,但事件未触发。有什么建议吗?(setTimeout(function()中包含的代码与手动退出菜单时使用的代码相同)


模糊不会在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);

});