jQuery:如果用户点击了div

时间:2010-05-24 07:30:46

标签: jquery onclick

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

这没关系,但是如果用户点击了div呢?我希望那也关闭div。唯一的问题是我不想将点击事件附加到页面上的包装器(因为它包含弹出菜单)。我已经看到了用透明div包装整个屏幕的技术,然后附加一个click事件来命中。尽管这可能有效,但如果用户点击隐藏的div打算单击链接,则会使用户感到困惑。他必须两次点击链接。一旦两个关闭div(隐藏链接),另一个时间实际点击思考。此外,您松散连接到页面上任何蒙版元素的鼠标光标(例如链接光标指针等)。

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

onclicksomewhereelse = “closeme();”

洛尔。

1 个答案:

答案 0 :(得分:4)

假设:

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

#dialog { display: none; }

使用:

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

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