如何在jQuery中检测除了这一个div之外的任何内容?

时间:2010-11-07 01:58:01

标签: jquery

当用户点击该div之外的任何地方时,我想用“myProfile”类隐藏div。我怎样才能做到这一点?

到目前为止我有这个,但显然当用户点击它而不是“外面”时隐藏div:

$('.myProfile').click(function() {
    $(this).hide();
});

2 个答案:

答案 0 :(得分:3)

$('body').click(function(event){

  if (!$(event.target).hasClass('myProfile'))
  {
    $(event.target).hide();
  }

});

答案 1 :(得分:2)

或者,您可以在.myProfile下创建另一个div,占用页面上的所有空间。对于此div的click事件,您将隐藏此特殊图层和配置文件视图/框。这是实现模态框的一种非常常见的方式。这样您就不必听所有其他元素了。

我相信这也是受欢迎的Lightbox 2完成的方式,并且在我自己非常不受欢迎的代码中使用了hehe。