【发布时间】:2019-02-22 08:58:03
【问题描述】:
在 Vue.js 中,如何定位/检测被点击的元素以执行基本的切换类?
我已经写了这个切换成功但是当你点击一个a时,这个类被应用到所有li的
HTML
<ul id="app" class="projects">
<li v-bind:class="dyClass"><a href="" v-on:click.prevent.stop="show = !show">Project A</a></li>
<li v-bind:class="dyClass"><a href="" v-on:click.prevent.stop="show = !show">Project B</a></li>
<li v-bind:class="dyClass"><a href="" v-on:click.prevent.stop="show = !show">Project C</a></li>
<li v-bind:class="dyClass"><a href="" v-on:click.prevent.stop="show = !show">Project D</a></li> </ul>
JS
new Vue({
el: '#app',
data: {
show: false,
},
computed: {
dyClass: function() {
return {
show: this.show
}
}
}
})
我是 Vue 的新手。
编辑。
我设法在下面的帮助下让它工作,但我似乎无法获得切换效果。
<ul id="app" class="projects">
<li :class="{show:selected == 1}">
<a href="" @click.prevent.stop="selected = 1" >Exposure</a>
</li>
<li :class="{show:selected == 2}">
<a href="" @click.prevent.stop="selected = 2" >Exposure</a>
</li>
<li :class="{show:selected == 3}">
<a href="" @click.prevent.stop="selected = 3" >Exposure</a>
</li>
</ul>
和
new Vue({
el: '#app',
data: {
selected: false,
}
});
【问题讨论】:
-
每次点击事件都绑定同一个类。因此,如果单击任何项目,它会切换类的当前状态(每个项目都有)。您需要通过唯一 ID 定位每个列表项。
标签: javascript jquery vue.js