有一个div标签,设置了一个自定义属性:data-test
,并且有变量进行赋值。
在对这个标签进行点击时,通过addEventListener进行监听。并通过click事件修改了这个属性的变量值:
<!-- vue -->
<div :data-test="testStr" @click="testStr = 1">按钮</div>
根据打印显示,先执行了addEventListener
,再执行了click
事件,但是有一个很奇怪的点:
在addEventListener
的方法中打印目标点击元素的时候,通过event.target.dataset
拿到的值是undefined
,而如果只是打印event.target
却能看到dataset
下面有值。
而如果我给addEventListener
的方法设置一个计时器,再延后1ms来进行打印,却又能看到event.target.dataset
,怎么对这种现象进行理解呢
解决方法:
不设置addEventListener的第三个参数,或者设置为false即可
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…