我如何使用jQuery定位除1个元素之外的所有内容?

时间:2012-11-20 00:39:36

标签: jquery

我有一个href可以在屏幕中间打开一张照片(想象它就像fancybox / lightbox / lytebox),当用户点击网站上的任何地方时,我想要关闭它,除了带照片的div

我如何用jQuery来定位?

1 个答案:

答案 0 :(得分:0)

使用jQuery .not()方法。

$(".elements").not(".this-element").on("click", function() {
  $(".this-element").hide();
});​

http://jsfiddle.net/6McAF/

<强>更新

正如@nnnnnn指出的那样,当你这样做时,会遇到一些复杂的传播问题。更好的方法是使用overlay div(z-index小于你想要隐藏的元素,如@j08691所提到的),然后绑定到它。

或者添加另一个处理程序(我不推荐):

$(".this-element").on("click", function(e) {
  e.stopPropagation(); // ugly boilerplate to fix thoughtless bindings
);