2011-04-13 52 views
0

這個問題可能是一個非常混亂的方式,所以這裏是一個簡單的例子 http://www.andytimney.com/projects/jquerydropdown/ 如果你點擊一個「存檔」,將出現一個下拉菜單。現在,如果你想關閉它,你需要再次點擊「存檔」。不過,我想通過任何不以「選項1」,「選項2」爲目標的點擊來關閉它。類似於Facebook如何點擊右上角的「帳戶」菜單。Javascript/jQuery:如何捕獲除了幾個指定元素之外的任何元素的點擊?

我想到的唯一解決方案是將onClick函數綁定到或者如果除了我要指定的幾個元素外,對於頁面上的所有元素都不起作用。這個解決方案對我來說看起來有點ha so,所以我想知道是否有一個我錯過的更智能的解決方案。

回答

2

附加的單擊事件的身體和測試,如果點擊的項目是不是一種選擇:

$('body').click(function(e) { 
       if(!$(e.target).parents('.option').length && !$(e.target).hasClass('.option')) { 
        $('.archive').hide(); 
       } 
      }); 
+0

注意:這不使用stopPropagation() - 有時您仍然希望點擊事件冒泡dom觸發其他事件處理程序,如果它們因其他原因而存在。 – 2011-04-13 17:07:24

相關問題