一般使用 v-for
遍历数组然后给每个子元素绑定onClick
方法然后传入下标:
1 | <template> |
但如果列表很长需要渲染的元素很多,在每一个子元素上都绑定onClick
方法会消耗性能。
可以使用事件代理,只在父元素上绑定onClick
方法,在子元素上绑定自定义属性data-index
,赋值下标,当点击子元素时,父元素的点击事件捕获子元素的点击事件,然后在点击事件的回调函数中使用e.target.getAttribute('data-index')
,来获取绑定在自定义属性data-index
上的下标:
1 | <template> |