javascript - Jquery 事件条件

标签 javascript jquery html css

我有两个 DIV,我想做的是:

  • 如果我将鼠标悬停在 div1 上 => div2 显示
  • 如果鼠标离开 div1 div2 => div2 隐藏
  • 如果鼠标离开 div1 但它仍在 div2 => div2 显示
  • 默认 div2 => 隐藏

我试过了:

 $("#div1,.div2").mouseleave(function(){
    setTimeout(function(){
        $(".popover").css("display", "none");
    }, 2000);
});

但是当我离开 div1 并将鼠标放在 div2 上时,2000 秒以上,div2 被隐藏了。

请问如何在 jquery 事件中写第三个条件。

谢谢。

最佳答案

当光标进入div2时,你必须取消挂起的超时:

var timer;
$("#div1,.div2").mouseleave(function(){
    timer = setTimeout(function(){
        $(".div2").css("display", "none");
    }, 2000);
});

$(".div2").mouseenter(function(){
    clearTimeout(timer);
});

一旦光标离开 div2,就会调用相应的 mouseleave 回调并再次启动计时器。

关于javascript - Jquery 事件条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21698338/

相关文章:

javascript - 如何限制 jsp 中的输入仅采用字母而不使用 JavaScript(因为 JavaScript 被禁用)?

javascript - 如何禁用对隐藏控件的验证

javascript - 来自 MongoDB 的数据不显示

html - 滚动条在 IE7、FF 和 Chrome 的自动调整大小框中表现不佳

javascript - 以编程方式提交 Angular 表单,但仍然收到 HTML5 验证错误

c# - 如何从母版页代码页获取应用程序路径?

javascript - 用 div 表替换空白 block 的按钮

jquery - $(this) 怎么可能不是在 jquery 点击处理程序中触发事件的元素?

jquery - 从所选图像中删除蓝色覆盖/突出显示

javascript - 在 bootstrap 的标题下制作导航主体