Vue onclick事件returns错误的srcElement
Vue onclick event returns wrong srcElement
为什么 onclick
事件 return 错误 srcElement
即使我将 onclick
放在父元素上它仍然是 return 子元素元素作为点击事件的来源。如何让它始终 select 我放置 onclick
方法的元素?下面是我的代码:
<div class="col-md-4 player-column" v-for="(player, index) in group" v-on:click="selectPlayers" :data-image="player.image">
<div class="players">
<div class="player-image">
<div class="circle">
<img class="img-responsive" v-if="player.image" :src="player.image | alternateIfImageExists(player.teamName, player.firstName+' '+player.familyName, 'small')">
<i class="fa fa-user" aria-hidden="true" v-else></i>
</div>
</div>
<div class="player-info">
<p class="player-fullname">{{player.firstName}} {{player.familyName}}</p>
<p>{{player.playingPosition}}</p>
<p v-if="player.teamCode !== ''">{{player.teamCode}}</p>
<p v-if="player.teamCode == ''">{{player.teamName}}</p>
<img :src="player.team_logo" :alt="player.teamCode">
</div>
</div>
</div>
Vue 方法
selectPlayers(e) {
console.log(e);
}
控制台日志:
currentTarget:null
srcElement:div.player-info
target:div.player-info
currentTarget:null
srcElement:img.img-responsive
target:img.img-responsive
- target, srcElement 是触发事件的元素(例如,用户
点击)
- currentTarget 是事件侦听器附加到的元素。
通过在调用方法时添加 this
作为参数,我能够获取元素的来源 was
v-on:click="selectPlayers(this)"
方法:
selectPlayers(e) {
console.log(e);
}
你必须使用 currentTarget
.
<template>
<div>
<a @mouseover="mouseover"><img src="" /></a>
</div>
</template>
<script type="text/javascript">
export default {
name: 'component',
methods: {
mouseover(e) {
//e.currentTarget will always return a
}
}
}
</script>
为什么 onclick
事件 return 错误 srcElement
即使我将 onclick
放在父元素上它仍然是 return 子元素元素作为点击事件的来源。如何让它始终 select 我放置 onclick
方法的元素?下面是我的代码:
<div class="col-md-4 player-column" v-for="(player, index) in group" v-on:click="selectPlayers" :data-image="player.image">
<div class="players">
<div class="player-image">
<div class="circle">
<img class="img-responsive" v-if="player.image" :src="player.image | alternateIfImageExists(player.teamName, player.firstName+' '+player.familyName, 'small')">
<i class="fa fa-user" aria-hidden="true" v-else></i>
</div>
</div>
<div class="player-info">
<p class="player-fullname">{{player.firstName}} {{player.familyName}}</p>
<p>{{player.playingPosition}}</p>
<p v-if="player.teamCode !== ''">{{player.teamCode}}</p>
<p v-if="player.teamCode == ''">{{player.teamName}}</p>
<img :src="player.team_logo" :alt="player.teamCode">
</div>
</div>
</div>
Vue 方法
selectPlayers(e) {
console.log(e);
}
控制台日志:
currentTarget:null
srcElement:div.player-info
target:div.player-info
currentTarget:null
srcElement:img.img-responsive
target:img.img-responsive
- target, srcElement 是触发事件的元素(例如,用户 点击)
- currentTarget 是事件侦听器附加到的元素。
通过在调用方法时添加 this
作为参数,我能够获取元素的来源 was
v-on:click="selectPlayers(this)"
方法:
selectPlayers(e) {
console.log(e);
}
你必须使用 currentTarget
.
<template>
<div>
<a @mouseover="mouseover"><img src="" /></a>
</div>
</template>
<script type="text/javascript">
export default {
name: 'component',
methods: {
mouseover(e) {
//e.currentTarget will always return a
}
}
}
</script>