Welcome to WuJiGu Developer Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
322 views
in Technique[技术] by (71.8m points)

addEventListener中获取到的event.target疑惑求解(已解决)

有一个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即可


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)
  1. console 打印的是快照。

    var arr = []
    arr.push(1);
    console.log(arr);//这里的你能看到2
    arr.push(2);

    image.png

  2. Vue 渲染异步的。

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to WuJiGu Developer Q&A Community for programmer and developer-Open, Learning and Share
...