问题
我点击有向下箭头的框框的时候,出现了3个弹出框,我想只出现对应的行的弹出框
点击前
点击后
代码
<tr v-for="item in tableData">
<td>
<label class="checkbox">
<input type="checkbox"/>
<span></span>
</label>
<!-- 有向下箭头的框框 -->
<div @click="controlToggle" class="hover-btn">
<span></span>
</div>
<!-- 点击后弹出的框框 -->
<ul v-show="controlDialog" class="hover-dialog">
<li @click="controlHide" class="dialog-item">禁用</li>
<li @click="controlHide" class="dialog-item">编辑</li>
<li @click="controlHide" class="dialog-item">删除</li>
</ul>
</td>
<td>{{item.id}}</td>
<td class="td-title">{{item.title}}</td>
<td>{{item.version}}</td>
<td>{{item.grade}}</td>
<td>{{item.subject}}</td>
<td>{{item.number}}</td>
<td>{{item.where}}</td>
<td>{{item.name}}</td>
<td>{{item.time}}</td>
</tr>
controlDialog: false,
methods:{
controlToggle(){
this.controlDialog = !this.controlDialog
},
controlHide(){
this.controlDialog = false
}
},
5 回答
![?](http://img1.sycdn.imooc.com/533e4c7b00013f3c02400205-100-100.jpg)
心有法竹
TA贡献1866条经验 获得超5个赞
methods:{
controlToggle(item){
item.controlDialog = !item.controlDialog
},
controlHide(item){
item.controlDialog = false
}
},
<div @click="controlToggle(item)" class="hover-btn">
<span></span>
</div>
另一个同理。把tag绑在每一行上,而不应该是全局用统一tag
还有方法二,就是全局存放index,然后通过index判断是否显示
![?](http://img1.sycdn.imooc.com/545863e80001889e02200220-100-100.jpg)
PIPIONE
TA贡献1829条经验 获得超9个赞
利用index索引来做
v-for = "(item,index) in data" 点击把索引存到某个变量为xx
然后下面v-show这样写
v-show = "index==xx?true:false"
![?](http://img1.sycdn.imooc.com/545850a00001fdd002200220-100-100.jpg)
Helenr
TA贡献1780条经验 获得超4个赞
把 controlDialog 放到 tableData 里面
methods:{
controlToggle(i){
this.tableData[i].controlDialog = !this.controlDialog
},
controlHide(i){
this.tableData[i].controlDialog = false
}
},
- 5 回答
- 1 关注
- 1879 浏览
添加回答
举报
0/150
提交
取消