.blur()上的setTimeout?

时间:2013-02-27 16:52:48

标签: javascript jquery

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

$('#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);

});

1 个答案:

答案 0 :(得分:5)

模糊不会在mouseout上触发,但是当元素失去焦点时(以前只是表单元素,现在是任何类型的元素)。您可以尝试mouseleave或更好地mouseout