Jquery 事件,双击背景但不单击元素

Jquery 事件,双击背景但不单击元素,jquery,Jquery,如何匹配主体背景而不是链接输入或链接的元素?我使用:不,但它不能让它工作 测试:可用于检查双击了哪个元素 e、 g: $( 'body' ).dblclick(function() { alert("You double-clicked the background!"); });​ 查看jquery中事件对象的文档: 记住这一点,您可以说如果目标元素是body元素,那么 我相应地更新了您的JSFIDLE: 与我的答案相比,我更喜欢这个版本,因为它使用带选择器的“is”操作符,使它更

如何匹配主体背景而不是链接输入或链接的元素?我使用:不,但它不能让它工作

测试:

可用于检查双击了哪个元素

e、 g:

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

查看jquery中事件对象的文档:

记住这一点,您可以说如果目标元素是body元素,那么

我相应地更新了您的JSFIDLE:


与我的答案相比,我更喜欢这个版本,因为它使用带选择器的“is”操作符,使它更通用+1与其他答案一样,最好检查当前元素是否为主体,而不是检查当前元素是否与其他元素不匹配-如果页面中有适量的标记,这可能会变得非常棘手。我更具体地回答了他的问题。如果@Martin只想排除一些dom元素,那么我的答案就是这样。如果@Martin想排除body之外的所有其他dom元素,那么我同意你的看法,@jesus。thesh@better检查当前元素是否为body>>不是由$'body'.dblclick?@Martin well事件在javascript中进行的。因此,当您单击链接时,链接上的单击事件以及包括主体在内的所有父元素上的单击事件都会被激发。试试这个:谢谢你和其他人:
$( '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");
});​
$( 'body' ).dblclick(function(e) {
    if($(e.target).is('body')){
        alert("You double-clicked the background!");
    }
});​
$( 'body' ).dblclick(function(evt)
{
    if(evt.target == document.body)
        alert("You double-clicked the background!");
});
$('body').dblclick(function(e) {
    if (e.target.localName === 'body') {
      //...
    }
});