2011-04-04 89 views
0

我有一個jQuery切換的問題 - 你可以看到這裏的問題:http://jsfiddle.net/tKUgg/3/jQuery的切換問題

正如你可以看到,出現在黃框中的每個項目,也出現在了黑盒子。當您單擊黑色框中的「主要項目」時,黃色框中的相應項目會被切換。

我遇到的問題是,當其中一個子項被點擊時,而不是隻切換自己,它也切換其父。我需要它只能切換自己。 (例如,如果您在黑色框中單擊「子項目a」,它應該只在黃色框中切換「子項目a」,但此時它將切換「子項目a」和父項「主項目」 )

我對jQuery相當陌生,所以我確信它是一個愚蠢的錯誤。 我該如何解決這個問題? (注意:該代碼旨在與內容管理系統一起工作,因此可以動態添加/刪除新的地圖圖層(類別),並在菜單中使用切換顯示相應的項目,這就是爲什麼它有點「意大利麪條」作爲你們有些人指出)

感謝

扎克

+1

你想要發生什麼? – 2011-04-04 13:44:10

+0

單擊其中一個子項目時,例如黑色框中的「子項目a」,它應該只在黃色框中切換相應的「子項目a」。目前,如果您點擊「子項目a」,則會切換「子項目a」和上述「主項目」。 – 2011-04-04 13:47:13

+0

當你說「它應該切換」的東西,你的意思是它應該顯示在黃色框中的項目? – 2011-04-04 13:49:50

回答

0

你可能要考慮修改你正在進行的意大利麪代碼。當我看着它時,我的大腦發生了爆炸。

由DNR提到 - stopPropagation()在處理嵌套列表時是必要的。

http://jsfiddle.net/V7CPr/

+0

該代碼旨在與內容管理系統一起使用,以便動態地添加/移除新的地圖圖層(類別),並使用切換在菜單中顯示相應的項目。這就是爲什麼它有一點「意大利麪條」。 – 2011-04-04 14:01:37

1

各個子項是主項的子元素。所以,當你點擊子項目時,你還要點擊主項目 - 這也是爲什麼它也會觸發。

爲了防止這一點 - 你必須調用:

e.stopPropagation(); 
上則傳遞到您的jQuery單擊處理click事件

瞭解here