代码之家  ›  专栏  ›  技术社区  ›  ProfK

如果div在一个时间间隔内没有MouseOver,则使用jQuery自动隐藏它

  •  0
  • ProfK  · 技术社区  · 14 年前

    我有一个解决方案,当菜单项得到MouseOver时显示div,但只有当div得到MouseOut时才隐藏两者。现在这是必需的。

    但是,如果div永远不会得到MouseOver,它就永远不会隐藏。我想做的是自动隐藏div,如果它在显示后的几毫秒内没有鼠标移动。

    一段时间后藏起来应该不难,但把它重新放在鼠标上对我来说是个挑战。有什么想法吗?

    2 回复  |  直到 14 年前
        1
  •  2
  •   cambraca    14 年前

    做一些类似的事情:

    function hideYourDiv() {
      $("div#yourdiv").hide();
    }
    var theTimeout = setTimeout(hideYourDiv, 1000);
    $("div#yourdiv").mouseover(function() {
      clearTimeout(theTimeout);
    });
    

    编辑 为了符合setTimeout:P的“正确”用法(尽管对于像这样简单的东西,我有时更喜欢给它传递一个字符串。。两种方法都有效)

        2
  •  1
  •   GolezTrol    14 年前

    可以使用setTimeout()设置超时,但也可以使用clearTimeout。每次鼠标悬停时,可以清除上一个超时并设置一个新的超时。