【发布时间】:2017-07-04 09:52:09
【问题描述】:
我有以下组件:
Vue.component('visible-filter', {
template: `
<span class="text-muted"
@mouseenter="changeClassMouseenter($event)"
@mouseout="changeClassMouseout($event)"
@click="countryTest(filter)"
@clicked="clicked = true"
v-model="clicked"
><slot></slot></span>
`,
props: ['filter', 'clicked'],
methods: {
changeClassMouseenter(event) {
console.log(this.clicked);
event.target.classList.remove('text-muted')
},
changeClassMouseout(event) {
event.target.classList.add('text-muted')
},
countryTest(filter) {
Event.$emit('clicked');
Event.$emit('country-filter', filter);
}
}
});
主实例中的事件:
Event.$on('clicked', () => {
this.clicked = true;
})
主实例中的数据:
data: {
clicked: false
},
我想做的事:
当我单击元素时,我想将 clicked 属性设置为 true(对于该元素),而对于其余元素,我想将其设置为 false;我还想在 mouseenter/mouseout 事件触发时检查 clicked 是否为真/假。
我怎样才能做到这一点?
【问题讨论】:
标签: vue.js vuejs2 vue-component