双击背景但不是元素的事件

时间:2012-12-03 20:56:39

标签: jquery

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

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

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

4 个答案:

答案 0 :(得分:6)

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

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

答案 1 :(得分: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");
});​

答案 2 :(得分: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!");
});

答案 3 :(得分:1)

$('body').dblclick(function(e) {
    if (e.target.localName === 'body') {
      //...
    }
});

http://jsfiddle.net/gXZyw/