jQuery:如果用户点击 div 之外

标签 jquery onclick

我正在查询中创建一个弹出窗口。悬停时弹出窗口一切正常。当用户的鼠标离开 div 以关闭它时,我让它看到计时器启动。如果他在计时器完成之前再次进入 div,则计时器将被清除。

这很好,但是如果用户点击 div 之外怎么办?我希望它也能关闭 div。唯一的问题是我不想将单击事件附加到页面上的包装器(因为它包括弹出菜单)。我见过用透明div包裹整个屏幕,然后附加一个点击事件来点击的技术。尽管这可能有效,但如果用户单击隐藏的 div 并打算单击链接,则会使用户感到困惑。他必须点击该链接两次。一旦两次关闭 div(隐藏链接),另一次实际单击思考。此外,您还会失去附加到页面上任何屏蔽元素的鼠标光标(例如链接光标指针等)。

必须有一种方法来检查用户是否在没有模式的情况下单击了 div,并且没有将事件附加到整个页面(包括页面包装和子元素)。

onclicksomewhereelse="closeme();"

哈哈。

最佳答案

假设:

<div id="dialog">...</div>

和:

#dialog { display: none; }

用途:

$(document).click(function() {
  if ($(this).parents("#dialog").length > 0) {
    $("#dialog").hide();
  }
});

这不会干扰您拥有的其他 click() 处理程序。

关于jQuery:如果用户点击 div 之外,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2895435/

相关文章:

javascript - 使用 on-Clickfun 从 div 类 ="overlay"链接到另一个页面

jquery - react 日期选择器: Highlight current month's days

jquery - Twitter Bootstrap Carousel 循环项目从右到左 (RTL) 反转

javascript - 窗口宽度仅在调整视口(viewport)大小时显示,而不是在加载时显示 - jquery

javascript 使用独特的 onclick 事件创建 div

javascript - 使用 javascript 从文本文件中读取值

android - 小部件中的 OnClick PendingIntent 有时不起作用

javascript - 如何执行: onClick Javascript,隐藏具有过渡效果的div

javascript - 将 img Javascript 变量转换为 $_FILES ['name' ] ['tmp_name' ];

jquery - 如何使用 bxslider 在当前幻灯片中应用一个类?