我想要实现的场景是,有两个按钮,但页面上只显示一个按钮,另一个隐藏。通过点击按钮时触发事件,先前显示的按钮隐藏,而另一个按钮渲染出来进行其他的事件调用。

        如一下gif图所示效果。用到了Element-UI的按钮元素。

         有两种方法,效果类似:① 动态绑定Vue的class属性;② 动态绑定Vue的内联样式style属性;

        详情见文档:Class 与 Style 绑定 — Vue.js

        我的代码 :只介绍第一种。

  <el-button type="primary" @click="edit" :class="{ active: isActive }" size="mini"
          >编辑</el-button>
        <el-button
          type="primary"
          @click="dialogVisible = true"
          :class="{ active1: isActive1 }"
          style="margin-left:0px" size="mini">提交</el-button
        >
    
data(){ 
    return {
    isActive: false,  //设置按钮的初始显示,当布尔值为true时,对应的属性active生效,即隐藏
    isActive1: true,    //同上
},
methods:{
    edit() {
      this.isActive = !this.isActive;  //当点击按钮触发事件时改变两个按钮的显示
      this.isActive1 = !this.isActive1;
    },
    
}
}
.active {
  display: none;  // 隐藏
}
.active1 {
  display: none;   //隐藏
}

         初始时,第一个按钮的布尔值为false,所以不会隐藏,当点击按钮时,调用edit事件,届时布尔值取反,第一个按钮布尔值为true,第二个为false,所以第二个按钮显示,而第一个隐藏。

        这里由于我的第二个按钮有其他事件触发,所以没有单独写按钮事件,各位可以自行根据需要补齐。同第一个按钮样,点击第二个按钮时,取反布尔值即可实现显示和隐藏。

 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐