vue组件中的addEventListener触发不完整

<template>
  <div id="app">
     <template v-for="(item, index) in list">
       <transform-tool :key="index" :x="item"></transform-tool>
     </template>
  </div>
</template>

<script>
import TransformTool from './components/tranform-tool/transform-tool.vue'

export default {
  name: 'app',
  data() {
    return {
      list: [1, 2]
    }     
  },
  components: {
    TransformTool
  }
}
</script>

<style>


</style>

这是父组件,下面的是子组件

<template>
  <div>{{xx}}</div>
</template>

<script type="text/ecmascript-6">
  export default {
    name: 'TransformTool',
    props: {
      x: {
        type: Number,
        default: 0
      }
    },
    data() {
        return {
            xx: 0
        }
    },
    computed: {
        id() {
            return 'id' + this.x
        }
    },
    mounted() {
        let self = this
        document.onmousemove = function(e) {
          self.xx = e.pageX
        };
    },
    methods: {
      
    }
  }
</script>

<style>

</style>
我的问题是:当我鼠标在页面中移动时,第一个组件的xx永远没有变化,只有第二个在变

clipboard.png

阅读 5.1k
1 个回答

事件覆盖,只有最后一个生效,不想覆盖的话这样写

document.addEventListener("onmousemove",function(e){
    self.xx = e.pageX
})
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题