<div style='cursor: pointer' v-for="row in rows" class="list-group-item list-group-item-action bg-light sidebar-item pl-2" :active="row.active">
<div v-on:mouseout.stop="controls = null" v-on:mouseover="controls = row.id" class="row">
<div class="col-9">{{ row.title }}</div>
<div v-if="controls == row.id" class="col-1">
<i class="fa fa-edit text-primary"></i>
</div>
<div v-if="controls == row.id" class="col-1">
<i class="text-danger fa fa-trash"></i>
</div>
</div>
</div>
这是我的代码。当鼠标悬停在图标上时,@mouseout
会触发,即使它们仍位于div中并且您实际上还没有mouseout
编辑过。
我尝试在父div上使用@mouseover
和@mouseout
-相同的结果。我还尝试了所有我能想到的事件修饰符。
答案 0 :(得分:0)
这是事件侦听器mouseover
或mouseout
的默认行为。如果要忽略孩子,则必须:
在子级上设置css属性pointer-events: none
或
检查光标是否在事件处理程序的父元素内
但是,对于您的用例(当父对象悬停时显示一个元素),css更合适。
例如
.col-1 {
display: none;
}
.row:focus > .col-1,
.row:focus-within > col-1,
.row:hover > col-1 {
display: block;
}