e.target.dataset与e.currentTarget.dataset的作用:获取标签中定义的值,定义方法 data-*=某个值
1需要在触发元素上用“data-”+“属性”的形式定义,如value值写成data-value,calss值写成data-class
2.通过e.target.dataset.属性能够获取属性
e是事件对象,里面包括很多方法
e.target指向返回事件的目标节点(触发该事件的节点)
e.target.dataset返回一个对象,对象中是设置的属性,如果设置的时候不加data,则获取到的对象为空。
<div
class="shortcut"
@touchstart.stop.prevent="onShortcutTouchStart"
@touchmove.stop.prevent="onShortcutTouchMove"
@touchend.stop.prevent
>
<!--touch的三个事件 阻止冒泡和默认行为 -->
<ul>
<li
v-for="(item, index) in shortcutList"
:key="item"
:data-index="index"
class="item"
:class="{ current: currentIndex === index }"
>
{{ item }}
</li>
</ul>
</div>
// 点击组名,跳转至对应的组
function onShortcutTouchStart(e) {
// console.log(e.target.dataset) // ul下面的li
// li上绑定了data-index,使用dom api拿到
const anchorIndex = parseInt(e.target.dataset.index)
touch.y1 = e.touches[0].pageY
touch.anchorIndex = anchorIndex
scrollTo(anchorIndex)
}