2010-11-07 21 views
0

當用戶點擊該div以外的任何地方時,我想隱藏類「myProfile」的div。我怎樣才能做到這一點?如何在jQuery中檢測除這個div之外的其他任何內容的點擊?

我有這到目前爲止,但顯然它說,隱藏在div當用戶點擊它,而不是「外部」吧:

+1

重複的問題:http://stackoverflow.com/questions/321239/event-on-a-click-everywhere-on-the-page-outside-of-the-specific-div – Klinger 2010-11-07 02:15:37

回答

3
$('body').click(function(event){ 

    if (!$(event.target).hasClass('myProfile')) 
    { 
    $(event.target).hide(); 
    } 

}); 
+0

+1。不錯,巴勃羅。 – davur 2010-11-07 02:09:34

+0

當然,通過這種方式,點擊另一個具有點擊事件的元素只會觸發自己的點擊事件,並且不會觸發主體點擊事件。 – davur 2010-11-07 02:10:53

+0

@dsclementsen除非事件處理程序停止傳播。 – 2010-11-07 02:12:59

2

另外,您可以.myProfile下創建其他的div佔用您網頁上的所有空間。對於此div的單擊事件,您可以隱藏此特殊圖層和您的個人資料視圖/框。這是實現模態框的一種非常常見的方式。這樣你就不必聽所有其他的元素。

我相信這也是它受歡迎的Lightbox 2完成的方式,並且絕對用於我自己非常不受歡迎的代碼。呵呵。

相關問題