我可以使用 Vue 在鼠标悬停时成功添加一个类。但是我想在鼠标离开元素时删除该类。在 Vue 中处理这个问题的惯用方式是什么?
<template>
<div id="navigation">
<div class="nav-container">
<nav>
<router-link to="/" class="home">Ping Party</router-link>
<div class="navigation-actions">
<router-link to="/sign_in" v-if="!isLoggedIn" class="sign_in">Sign In</router-link>
<router-link to="/sign_up" v-if="!isLoggedIn" @mouseover.native="mouseOver" class="sign_up" ref="sign_up">Sign Up</router-link>
<router-link to="/users" v-if="isLoggedIn" class="users">Users</router-link>
<v-btn :click.prevent="signOut()" v-if="isLoggedIn">Sign Out</v-btn>
</div>
</nav>
</div>
</div>
</template>
<script>
import SignUp from "../forms/SignUp";
import SignIn from "../forms/SignIn";
export default {
components: {
SignUp,
SignIn
},
computed: {
isLoggedIn () {
return this.$store.getters.isLoggedIn
}
},
methods: {
signOut: function() {
this.$store.commit("LOGOUT")
this.$store.commit("FLASH_MESSAGE", {
message: "Signed Out Successfully",
show: true,
styleClass: "error",
timeOut: 4000
})
this.$router.push('/')
},
mouseOver: function() {
this.$refs.sign_up.$vnode.elm.classList.add("hovered")
}
}
}
</script>
正如您在 mouseover 上看到的那样,我调用了 mouseOver 函数,这成功地将类添加到元素。但是现在当用户离开元素时,类仍然存在。当用户离开元素时,如何删除类?谢谢您的帮助。
原文由 Bitwise 发布,翻译遵循 CC BY-SA 4.0 许可协议
收听
mouseover
和mouseout
并根据其设置类。或者只使用 CSS。