2014-12-19 55 views
0

我需要知道如何在jsp页面中的空白处单击某个函数来调用该函数。点击空格时jquery函数调用

我试过下面的代码,但它不工作,我想如何。

任何人都可以告诉我如何做到这一点?

jQuery("*:not(select)").click(function(){ 

    alert("clck"); 
    //some code here 

    }); 

在这里,我试图每当我点击侧选择框功能将调用。

如果我点击选择框,它将不会调用,但是此函数一直被调用。

这是怎么发生的?

+0

因为的事件传播,所以停止事件冒泡 – 2014-12-19 11:34:46

+0

@ A.Wolff那么我怎么能做到这一点? – KVK 2014-12-19 11:35:36

回答

4

我可能会做这样的事:

$(document).on("click", function(e) { 
    if (e.target === document || e.target.tagName === "BODY" || e.target.tagName === "HTML") { 
     // Clicked on blank space 
    } 
}); 

挂接上documentclick事件,然后检查是否点击对文档起源(或bodyhtml元素)。如果确实如此,则用户点击“空白区域”(例如,不在文档内的某个其他元素上)。

+0

不是@ Vaibhav的答案足够检查? – 2014-12-19 11:40:19

+0

@ A.Wolff:'body'并不总是填充视口。 – 2014-12-19 11:41:09

+0

这是一个好点! – 2014-12-19 11:41:26

3

不确定适用于所有浏览器,但适用于Chrome浏览器。

$('body').click(function (e) { 
    if (e.target == this) 
     alert('clck'); 
}); 
+0

这将适用于所有浏览器 – 2014-12-19 11:36:46

+0

我以前试过。但它不会在Mozilla中工作 – KVK 2014-12-19 11:36:56

+0

@KVK你确定吗?再试一次。 Mozilla不会默认传递'event'对象,但是在这里这个答案会将变量'e'传递给事件 – 2014-12-19 11:37:19

0

如果你想将不包括在点击一个特殊的项目尝试这种

$('#itemtobeexcluded').on('click', function(e) { 
    e.stopPropagation(); 
}); 

那么对于整个文档:

$(document).on('click', function (e) { 
// function body 
}); 
0

可能是这将工作

$(document).on('click', function (e) { 

     alert('clck'); 
});