两个按钮控制同一块内容的显示和隐藏

发布于 2022-09-07 23:05:02 字数 2082 浏览 11 评论 0

问题描述

在一个表格中,有两个按钮可点击,控制表格的展开行的显示和隐藏,两个按钮可切换不同的内容

问题出现的环境背景及自己尝试过哪些方法

点击按钮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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

百思不得你姐 2022-09-14 23:05:02

不知道我这样理解的对不对:不同的按钮对应不同的展开内容,第二次点击只在已显示对应展开内容时隐藏展开元素。

如果我理解得没错,那么只需要设置一个状态,用来储存展开元素的状态。0 表示隐藏,1 表示显示展开内容1,2 表示展开内容2。按钮的点击逻辑首先判断这个状态是否为 0,如果是则对应写入 12,否则写入 0。而展开元素的显隐控制只判断这个状态是否为 0 就行了。

我觉得你的代码有点想复杂了。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文