2011-12-02 215 views
2

我有一個UL LI子列表切換。jQuery - 如何防止html隱藏元素?

ul 
    li a.trigger 
     ul.sub_list li 
    li 
    li 

事件 - 單擊。

當我點擊​​,ul.sub_list會顯示。 要隱藏ul.sub_list。我需要點擊​​或html元素。

問題是當用戶點擊ul.sub_list項目時,如何從hide()ul.sub_list停止html。

例如:http://jsfiddle.net/zYgfr/

這是如Facebook通知。

+0

http://jsfiddle.net/zYgfr/1/更新一次檢查小提琴。 – Unknown

+0

謝謝,但它不會隱藏ul.sub_list當我點擊其他區域比ul.sub_list(其他html區域)。 – aje

回答

1

添加這樣的:

$(".sub_list a").click(function(event){ 
     event.stopPropagation(); 
}); 

的概念是,在默認情況下,當點擊一個元素時,它通過DOM向上傳播。

所以當單擊鏈接時,最終在傳遞給每個父級後,事件將到達HTML根元素,觸發沿其路徑的任何事件處理程序。

爲了阻止這一點,我們調用event.stopPropagation()。

+0

或者'.sub_list li'甚至更好,因此在通知區域周圍的任何點擊都不會消失 –