在关闭滑动菜单之前,如何让jQuery等待一秒钟?

时间:2015-06-03 10:33:45

标签: javascript jquery slideup

我尝试使用setTimeout,但它只是破坏了东西。这是我的代码:

$(document).ready(function() {
    $('.menu-item-has-children').hover(
        function() {
            $(this).children('.sub-menu').slideDown(400);
        },
        function() {
            $(this).children('.sub-menu').slideUp(400);
        }
    );
}); // end ready

我想在.slideUp之前暂停1秒钟。帮助

2 个答案:

答案 0 :(得分:3)

您可以使用delay

  

设置计时器以延迟执行队列中的后续项目。

$(document).ready(function() {
    $('.menu-item-has-children').hover(
        function() {
            $(this).children('.sub-menu').delay(1000).slideDown(400);
        },
        function() {
            $(this).children('.sub-menu').delay(1000).slideUp(400);
        }
    );
}); // end ready

文档:https://api.jquery.com/delay/

答案 1 :(得分:-1)

使用setTimeout功能:

setTimeout(function() {
   $(this).children('.sub-menu').slideUp(400);
}, 1000);