vue里元素位置获取

通过$event来传递点击元素,然后e.target.getBoundingClientRect()去获取元素的位置时,每次得到的位置都不一样。`<div v-for="item in someData" @contextmenu.prevent="rightclickfun(item,$event)">

  <div class="text_area">
    <div class="file_pic"><img :src="item.thumbnail_big"></div>
    <div class="file_text" v-html="item.name"></div>
  </div>
  <div class="list_check" v-on:click.stop="checksingle(item)">
    <img src="static/img/page_checkbox_circula_hightlight.png" class="nocheck" v-show="!item.ischeck">
    <img src="static/img/page_checkbox_circula_selected.png" class="checked" v-show="item.ischeck">
  </div>
</div>`

这段代码渲染出来就是如图片所示,点击图片中的不同区域获取到的位置都不同,初步测试是因为点击了块中的不同元素造成的。但是获取元素位置的事件是绑定到最外面的元素的,为什么获取到的是子元素的位置呢?图片描述

阅读 13.9k
1 个回答

你用e.currentTarget.getBoundingClientRect()试试看

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题