两个按钮控制同一块内容的显示和隐藏
问题描述
在一个表格中,有两个按钮可点击,控制表格的展开行的显示和隐藏,两个按钮可切换不同的内容
问题出现的环境背景及自己尝试过哪些方法
点击按钮1,再点击按钮2,切换不同的内容,div不隐藏,再点击按钮2时div隐藏,可是当我再点击按钮1时,没有反应,需要再点击一次才会显示内容
相关代码
<el-table-column label="状态" prop="release_status">
<template slot-scope="props">
<div class="release_status" @click="addExpand(props.row)">
点我
</div>
</template>
</el-table-column>
<el-table-column type="expand">
<template slot-scope="props">
<div v-if="status === 0">
<span>我是点我的内容</span>
</div>
<div v-else>
<span>我是再点我的内容</span>
</div>
</template>
</el-table-column>
<el-table-column label="状态" prop="trade_status">
<template slot-scope="props">
<div class="trade_status" @click="addAgainExpand(props.row)">
再点我
</div>
</template>
</el-table-column>
methods方法:
let flag = true
let status = 1
addExpand(row) {
this.status = 0
const $table = this.$refs.table
if (flag) {
$table.toggleRowExpansion(row, true)
status = 1
} else {
if (status === 1) {
$table.toggleRowExpansion(row, false)
status = 2
} else {
$table.toggleRowExpansion(row, true)
status = 1
}
}
flag = !flag
},
addAgainExpand(row) {
this.status = 1
const $table = this.$refs.table
if (!flag) {
$table.toggleRowExpansion(row, true)
status = 2
} else {
if (status === 2) {
$table.toggleRowExpansion(row, false)
status = 1
} else {
$table.toggleRowExpansion(row, true)
status = 2
}
}
flag = !flag
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
不知道我这样理解的对不对:不同的按钮对应不同的展开内容,第二次点击只在已显示对应展开内容时隐藏展开元素。
如果我理解得没错,那么只需要设置一个状态,用来储存展开元素的状态。
0
表示隐藏,1
表示显示展开内容1,2
表示展开内容2。按钮的点击逻辑首先判断这个状态是否为0
,如果是则对应写入1
或2
,否则写入0
。而展开元素的显隐控制只判断这个状态是否为0
就行了。我觉得你的代码有点想复杂了。