【发布时间】:2021-05-12 21:18:37
【问题描述】:
我有四个图像,当鼠标光标悬停在它们上面时,会显示某个组件,我为这些图像应用了两个mouseover 和onclick 事件,我应用了onclick,这样当屏幕到达手机版,也就是568像素以下,点击图片时会显示某个组件,再次点击这张图片时,会隐藏某个组件,看起来像这样
<img v-on:click="isHidden = !isHidden" :src="item.img" alt="Show">
问题是当我尝试在手机版中打开图片时,我需要双击图片以显示组件而不是一个,我认为这个问题是由于我为他们接受两个事件 mousover 和 onclick,但是我怎样才能摆脱这个问题?
<div v-for="(girl, index) in sectionGirlsList" v-bind:key="index">
<div @mouseover="mouseOver(girl, hover = true)">
<div>
<img v-on:click="isHidden = !isHidden" :src="girl.girlImg" alt="Show">
</div>
<div v-if="selected == girl && !isHidden" class="next-to-description">
<div v-for="(enjoy, index) in sectionGirlsList" :key="index">
<component v-show="enjoy.hovered" v-bind:is="enjoy.componentName">
</component>
</div>
</div>
</div>
</div>
mouseOver: function (girl) {
this.sectionGirlsList.forEach((girl) => (girl.hovered = false));
this.isHidden = false;
girl.hovered = true;
this.selected = girl;
},
mouseout: function (girl) {
this.selected = null
girl.hovered = false;
},
我再简单说明一下问题,当你在浏览器控制台选择手机版时,需要点击图片两次才能显示组件而不是一个,你也可以看到full code in codesandbox
【问题讨论】:
标签: javascript vue.js events vuejs2