根据条件排除点击事件?

tmu*_*ton 11 jquery events jquery-selectors conditional-statements

我正在尝试为jQuery事件设置条件.我有一个输入元素和一个div.我想检测页面上任何地方的单击并执行该方法,但仅当点击不在输入或div上时.

Mik*_*ace 12

使用jQuery click()或live()函数,然后使用jQuery is()函数检查click事件的目标.

  1. 绑定文档上的click事件
  2. 如果目标没有输入或div继续

.

$(document.body).click(function(e) {
  if( !$(e.target).is("input, div") ) {
    console.log("Run function because image or div were not clicked!");
  }
});
Run Code Online (Sandbox Code Playgroud)

示例网页=> http://mikegrace.s3.amazonaws.com/forums/stack-overflow/example-document-click-exclusion.html

单击示例页面后的示例firebug输出

替代文字

  • @Mike`document.body`是一个内置的参考.它一旦呈现页面就会立即创建,并且始终存在.另一方面,`"body"`是一个选择器.`$("body")`将使用jQuery的选择器引擎,它将根据选择器进行查询.像所有查询一样,它消耗时间和处理能力. (4认同)