看板 Web_Design 關於我們 聯絡資訊
我舉個例子 例如: $(".title1").click(function(){$(".data1").show().siblings().hide();}); $(".title2").click(function(){$(".data2").show().siblings().hide();}); $(".title3").click(function(){$(".data3").show().siblings().hide();}); $(".title4").click(function(){$(".data4").show().siblings().hide();}); . . . 等等 當點title1區塊的時候 data1的區塊內容會顯示 因為title1跟data1的class差的有點遠 所以沒辦法像data11一樣可以控制鄰近的元素 寫久了會覺得很長一段 想詢問一下 像這樣是否能夠縮短程式碼呢? 我自己想到的方式是 當點擊.title+"i"的 元素時 對應到.data+"i"的元素會有效果 但是用for迴圈又怪怪的 ...反正就卡在這 請求高手幫解 附上P幣 888 做為報酬 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 101.13.116.2 ※ 文章網址: https://www.ptt.cc/bbs/Web_Design/M.1545185503.A.92A.html
Nonsense8: 我記得用迴圈是可以的,或是html添上data-target=data1 12/19 10:38
Nonsense8: ,class=‘allTitle title1’. 然後click(.allTitle) 12/19 10:38
Nonsense8: 來觸發 12/19 10:38
Nonsense8: 如果title1沒有寫style,那就刪掉 12/19 10:40
ian90911: 把title要控制的data css class放在title的data-*屬性 12/19 13:54
ian90911: 然後用jq的on 加上title class去寫click事件處理 12/19 13:55
ian90911: 這樣title class只要一個 dataN就等click觸發時再取出 12/19 13:55
jherk: Array.prototype.map.call(document.querySelectorAll(‘bu 12/19 13:59
jherk: tton’), (el, index)=>{el.addEventListener(‘click’, ( 12/19 13:59
jherk: )=>{$(‘button’)[index].hide()})}) 12/19 13:59
InfinityGate: event delegation 12/19 14:05
hooy2013: 用data還可以無視順序 12/19 14:37
PretenderY: https://api.jquery.com/index/ 12/19 23:24
PretenderY: 看Examples的第一個範例.直接用.index() 12/19 23:25
PretenderY: 去取得title的Index即可. 12/19 23:25