通过$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>`
这段代码渲染出来就是如图片所示,点击图片中的不同区域获取到的位置都不同,初步测试是因为点击了块中的不同元素造成的。但是获取元素位置的事件是绑定到最外面的元素的,为什么获取到的是子元素的位置呢?
你用e.currentTarget.getBoundingClientRect()试试看