У меня есть кнопка компонента, где я использую эту кнопку почти везде на моем сайте.
Это кнопка SVG с анимацией при наведении курсора. Кнопка отлично работает.
<template>
<a class="button"
@mouseover="buttonEnter"
@mouseout="buttonLeave">
<svg viewBox="0 0 180 60">
<path ref="btnPath" d="..." />
</svg>
<span ref="btnSpan">
<slot>Button slot</slot>
</span>
</a>
</template>
<script>
import { buttonEnter, buttonleave } from '../assets/animate'
export default {
name: 'AnimButton',
methods: {
buttonEnter(event) {
buttonEnter(this.$refs.btnPath, this.$refs.btnSpan)
},
buttonLeave(event) {
const buttonSpan = event.currentTarget.querySelector('span')
buttonleave(this.$refs.btnPath, this.$refs.btnSpan)
},
},
}
</script>
Теперь я хочу использовать эту кнопку в качестве кнопки отправки в моей форме. События наведения происходят, но кажется, что событие @ click не запускается.
Вероятно, мне не хватает чего-то плохого.
<form>
<input type="email">
<input type="subject">
<input type="message">
<anim-button type="submit" @click="submit">
Submit
</anim-button>
</form>
<script>
import AnimButton from '~/components/AnimButton.vue'
export default {
components: {
AnimButton,
},
methods: {
submit: function() {
console.log('submit')
},
}
</script>