2014-12-19 102 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'); 
});