看板 Web_Design 關於我們 聯絡資訊
大家好~ 由於正在自修前端語言, 於是邊做邊學,做了一個網頁 在使用jquery控制選單, 並顯示網頁上出了一點問題。 這是我的原始碼 https://www.dropbox.com/s/4nlreqwn3d2nxqo/web.rar?dl=0 js資料夾中,test.js為控制選單的jquery 我使用console去print jquery執行的過程 按下 Nav-5 會顯示下拉選單 test.js:8 --- test.js:9 111 test.js:14 222 test.js:16 333 test.js:18 444 test.js:27 close 當按下 5-1 or 5-2 會收起來 test.js:8 --- test.js:9 111 test.js:14 222 test.js:38 666 test.js:8 --- test.js:9 111 test.js:14 222 test.js:16 333 test.js:18 444 test.js:27 close 但我有寫if去做判斷,但不知道為什我按下 5-1、5-2後會去跑兩次,是我觀念錯誤selector下錯了嗎? 還是我需要寫些甚麼? 還請各位大大指點一下,謝謝 :) -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.25.0.72 ※ 文章網址: http://www.ptt.cc/bbs/Web_Design/M.1420817609.A.97D.html
YUPTT: $('ul.navigation li') => $('ul.navigation > li') 01/10 00:58
謝謝 YUPTT大 的指點,可能是我表達得不太好, 因為我是要點子選項(5-1、5-2),選單不會收合,然後做後續動作。 設計成$('ul.navigation li')是想要第一層if判斷 是否父節點有class navigation,有的話應當是按下 Nav1 ~ Nav6其中一個,如果是Nav5則顯示下拉選單, 可是好像是因為子選項包在Nav 5 的li裡面,所以點下 子選單還是會去執行收合的動作。 是否是我邏輯錯誤,還是需要加上甚麼判斷式? ※ 編輯: kotou (114.25.9.93), 01/10/2015 14:01:47
bcawosxy: 1. $('ul.navigation li a') 01/10 15:19
bcawosxy: 2. $(this).siblings("ul").slideToggle(); 01/10 15:19
bcawosxy: 測試了一下 不知道是不是你要的結果 01/10 15:20
bcawosxy: 看實作可以站內信我~給你看WEB 01/10 15:21
kotou: 感謝bcawosxy大的提點,我之後畫了一張DOM樹狀圖,懂你的意 01/10 22:36
kotou: 思了! PS:信中的連結好像無法開啟,不過非常感謝您 :) 01/10 22:37
※ 編輯: kotou (114.25.9.93), 01/10/2015 22:38:21