在mouseenter和mouseleave事件中使用setTimeout

时间:2013-05-12 14:42:05

标签: javascript jquery

我有以下内容:

$("#header .navigation li.menu-item-first a").mouseenter(function() {
    $(".sub-nav").css("display", "block");
}).mouseleave(function() {
    $(".sub-nav").css("display", "none");
});

用户将鼠标移开后,我不希望.sub-nav消失。 我如何将setTimeout整合到这些中?

2 个答案:

答案 0 :(得分:2)

还可以使用delay()

$("#header .navigation li.menu-item-first a").mouseenter(function() {
  $(".sub-nav").stop(true).css("display", "block"); //stop "animation" and clear queue
}).mouseleave(function() {
  $(".sub-nav").delay(1000).fadeOut(1);
});

demo of usage

答案 1 :(得分:1)

$("#header .navigation li.menu-item-first a").mouseenter(function() {
  $(".sub-nav").css("display", "block");
}).mouseleave(function() {
    window.setTimeout(function() {
        $(".sub-nav").css("display", "none");
    }, 1000);
});

也许?