0
$( 'body' ).dblclick(function() {
    alert("You double-clicked the background!");
});​

如何匹配正文背景而不匹配元素链接输入或链接?我猜想使用:not(),但它不能让它工作。

测试:http: //jsfiddle.net/SwARj/

4

4 回答 4

6

http://jsfiddle.net/SwARj/1/

$( 'body' ).dblclick(function(e) {
    if($(e.target).is('body')){
        alert("You double-clicked the background!");
    }
});​
于 2012-12-03T20:59:06.193 回答
2

您可以使用event.target.nodeName来检查哪个元素被双击。

例如:

$( 'body' ).dblclick(function() {
   if (event.target.nodeName != "A" && event.target.nodeName != "INPUT")
      alert("You double-clicked the background and not a link nor an input");
});​
于 2012-12-03T20:58:29.623 回答
1

查看 jquery 中事件对象的文档:http: //api.jquery.com/category/events/event-object/

考虑到这一点,您可以说“如果目标元素是body元素,则处理”

我相应地更新了你的 jsfiddle:http: //jsfiddle.net/SwARj/2/

$( 'body' ).dblclick(function(evt)
{
    if(evt.target == document.body)
        alert("You double-clicked the background!");
});
于 2012-12-03T20:59:27.080 回答
1
$('body').dblclick(function(e) {
    if (e.target.localName === 'body') {
      //...
    }
});

http://jsfiddle.net/gXZyw/

于 2012-12-03T20:59:54.150 回答