在标签页1下点击aa,aa会添加class,但同时2和3标签页下的cc和ee也会添加class,如何在1页面下点击aa只有1页面的aa添加class,就是不会互相干扰?
<body>
<div id="app">
<div style="display: flex;">
<div class="tab-name" v-for="(item,index) in list" :class="{selected:index == tabIndex}" @click="tabNameClick(index)">{{item.name}}</div>
</div>
<div style="display: flex;">
<div class="tab-content" v-for="(item,index) in list" v-show="index == tabIndex">
<div class="tab-item" v-for="(x,index) in item.content" :class="{selected:index == itemIndex}" @click="tabItemClick(index)">{{x}}</div>
</div>
</div>
</div>
<script>
var content = [
{name:'1',content:['aa','bb']},
{name:'2',content:['cc','dd']},
{name:'3',content:['ee','ff']}
]
new Vue({
el: '#app',
data: {
list: content,
tabIndex:0,
itemIndex:null
},
methods: {
tabNameClick: function(index){
this.tabIndex = index;
},
tabItemClick: function(index){
this.itemIndex = index;
}
}
})
</script>
</body>
选择 tab 下面的块时,不要存放到同一个实例数据,而是用一个对象来记录:
在线演示:https://jsfiddle.net/KingMari...