[问题] 如何整合JQ里面的程式码(附P币)

楼主: sunbear928 (是熊耶)   2018-12-19 10:11:41
我举个例子 例如:
$(".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 做为报酬
作者: Nonsense8 (胡说)   2018-12-19 10:38:00
我记得用循环是可以的,或是html添上data-target=data1,class=‘allTitle title1’. 然后click(.allTitle)来触发如果title1没有写style,那就删掉
作者: ian90911 (xopowo)   2018-12-19 13:54:00
把title要控制的data css class放在title的data-*属性然后用jq的on 加上title class去写click事件处理这样title class只要一个 dataN就等click触发时再取出
作者: jherk   2018-12-19 13:59:00
Array.prototype.map.call(document.querySelectorAll(‘button’), (el, index)=>{el.addEventListener(‘click’, ()=>{$(‘button’)[index].hide()})})
作者: InfinityGate (小鸟)   2018-12-19 14:05:00
event delegation
作者: hooy2013 (gogo)   2018-12-19 14:27:00
作者: PretenderY   2018-12-19 23:24:00
https://api.jquery.com/index/看Examples的第一个范例.直接用.index()去取得title的Index即可.

Links booklink

Contact Us: admin [ a t ] ucptt.com