【发布时间】:2018-01-18 16:50:37
【问题描述】:
我有这个代码
displayGeneralTip (bool) {
this.generalTip = bool
}
<div v-if="!generalTip" class="sm-exercise-tip sm-exercise-general-tip" @click="displayGeneralTip(true)">
<img src="~assets/exercises/bulb.svg" alt="Ampoule éteinte">
<span>Astuce</span>
</div>
<div v-if="generalTip" class="sm-exercise-block sm-exercise-general-tip-expand">
<div class="general-tip-bulb-icon">
<img src="~assets/exercises/lighted-bulb.svg" alt="Ampoule allumée">
</div>
<div class="sm-exercise-block-tip">Some text</div>
<div class="sm-exercise-hide-answer" @click="displayGeneralTip(false)">
<span>Masquer</span>
<img src="~assets/exercises/eye.svg" alt="masquer">
</div>
</div>
最初,generalTip 设置为 false。 单击第一个 div 以显示文本时,它工作正常。第一个方块消失,第二个出现。
但是当点击div隐藏答案(sm-exercise-hide-answer)时,它会触发带有bool false的方法displayGeneralTip,但是在它触发与bool true相同的方法之后。好像我们同时点击了第二个 div 和第一个。
我尝试将带有文本的 div 放在页面的其他位置,但效果很好。当两个 div 必须在页面上的同一位置时会出现问题
有人遇到过这个问题吗?
【问题讨论】:
-
试试 '@click.stop' 或 @click.self