2011-08-09 43 views
3

我正在使用一種顏色選擇器,當在其外部的任何位置進行單擊時應該隱藏該顏色選擇器。 問題是,即使在選取器內進行點擊,它也會消失。如何選擇除一個元素之外的主體?

$('body :not(#picker)').click(function() { 
    $('#picker').fadeOut(); 
}); 

我試過了,但它會顯示選擇器並立即隱藏它。 有人有建議嗎?

謝謝。

回答

17

嘗試使用event.target獲得被點擊的元素:

$("body").click(function(event) { 
    if (event.target.id != "picker") { 
     $("#picker").fadeOut(); 
    } 
}); 
+0

不錯的解決方案爲+1 – Vivek

+0

您可能需要使用*窗口*或* HTML *而不是* *體自體可能無法覆蓋整個窗口區域。 – Jari

+0

@Jari,然後我會用'document'去。我在回答中使用了「body」,因爲這是提問者使用的元素。 –

3
$("body").click(function(e) { 
    if ($(e.target).attr('id') == 'picker') { 
     return; 
    } else { 
     $('#picker').fadeOut(); 
    } 
}); 
相關問題