捕获DOM元素之外的点击

时间:2014-08-25 10:26:37

标签: jquery events dom

我希望捕获HTML标记之外的点击次数。例如,我有这个HTML:

<body> 
 <div>
  <ul>
   <li id="button">
   </li>
  </ul>
 </div>
</body>

#button是页面中间的最小正方形。一旦用户在外面点击它就会发生一些事情,点击内部就不会发生任何事情。

由于事件传播,这个JS不起作用:

jQuery('*').not('li#button').click(...);

所以我的点击事件最终会触发ul,div和body触发事件。 我不能用这个:

jQuery('*').click(function(e) {
 e.stopPropagation();
 if(e.(...)) {}
})

因为页面上的其他事件停止工作。

实现这一目标的另一种方式是什么?

2 个答案:

答案 0 :(得分:0)

$(document).bind('click', function(e) {
    if($(e.target).closest('#button').length == 0) {
        // yourlogic
    }
});

同时检查How to detect a click outside an element?

答案 1 :(得分:0)

$(document).click(function(e){
e.stopPropagation();
if($(e.Target).attr(id) != "button"){
    // Your logic
    }
});