Vue button多选单选问题(点击选中可改变样式)

news/2024/7/9 23:50:14 标签: vue, 前端

单选选中改变样式
做出如上效果

利用:class="item.ischeck == true ? 'btn_selected' : ''"三元表达式判断是否选中并改变样式

代码片段如下:


<div class="intent_btn">
  <van-button style="width: .90rem;" v-for="(item, index) in List" :key="index" :class="item.ischeck == true ? 'btn_selected' : ''"
  size="medium" @click="buttonSelectOne(index, item, List)">{{item.name}}</van-button>
</div>

​data:{
  List:[
    {val: 1, ischeck: false, name: "1"},
    {val: 2, ischeck: false, name: "2"},
    {val: 3, ischeck: false, name: "3"},
    {val: 4, ischeck: false, name: "4"},
    {val: 5, ischeck: false, name: "5"},
    {val: 6, ischeck: false, name: "更多"}
  ]
}

methods:{
  // 单选按钮
  buttonSelectOne(index, item, arr){
    // if(item.ischeck == false){
      for(var i=0; i<arr.length; i++){
        arr[i].ischeck = false;
      }
      item.ischeck = true;
  }
}

<style> 
  .intent_btn {
      padding: 0.12rem;
      border-bottom: 1px solid #E5E5E5;
      display: flex;
      flex-wrap: wrap;
      .van-button{
        height: .5rem;
        border-color: #A2A7AD;
        border-radius: .05rem;
        background-color: #FFFFFF;
        margin-left: .07rem;
        margin-right: .08rem;
        font-size: .24rem;
        color: #A2A7AD;
        text-align: center;
        margin-top: 0.07rem;
        padding: 0 0.16rem;
        width: max-content;
      }
      .btn_selected{
        color: #40A1FF;
        border-color: #40A1FF;
        background-image: url(../../assets/images/select.png);
        background-size: .36rem;
        background-position: bottom right;
        background-repeat: no-repeat;
      }
    }
</style>

多选如下:

// 多选按钮
buttonSelected(index, item){
   if(!this.selectArr.includes(item.name)){
     item.ischeck = true;
     this.selectArr.push(item.name);
   } else {
     item.ischeck = false;
     var index = this.selectArr.indexOf(item.name, 0)
     if(index>-1){
       this.selectArr.splice(index, 1);
     }
   }
   // console.log(this.selectArr)

},

http://www.niftyadmin.cn/n/1297160.html

相关文章

java怎么赋值成中文,java怎么赋值

java怎么赋值java的赋值语句是“”号&#xff0c;比如把1赋值给a可以写&#xff1a;int a 1;&#xff0c;如果是String类型可以写&#xff1a;String a "1";&#xff0c;对象可以写成User u1 new User();。了解了基本的赋值语句&#xff0c;下面我们来学学基本类型…

axios post请求小案例

post请求结构如下&#xff1a; function post() {axios.post(url, { // url表示请求地址 后面是请求传递的参数&#xff0c;是个对象&#xff0c;例如 id为1,姓名为YuChen的用户请求所需要的数据"id": 1,"name": "YuChen"}).then(response &g…

php phinx,phinx.php

declare(strict_types1);use Dotenv\Dotenv;use Leevel\Di\Container;use Leevel\Kernel\App;use Leevel\Kernel\IApp;use Symfony\Component\Console\Input\ArgvInput;use Leevel\Option\Env;// 加载 Composerrequire __DIR__./vendor/autoload.php;// 创建应用$container Co…

Vue监测数据的原理

代码如下&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdev…

汽车轮胎数显胎压计方案,气压监测方案设计

我们知道气压是汽车轮胎的命脉&#xff0c;过高或者过低都会影响轮胎的使用寿命。 如果汽车轮胎气压过高&#xff0c;汽车轮胎的帘线则会受到过度的伸张而导致变形&#xff0c;胎体弹性下降&#xff0c;使汽车在行驶中受到的负荷增大&#xff0c;如遇冲击会产生内裂和爆破&…

Vue点击外部空间隐藏div

最近做项目有用到点击外部空间隐藏div 适用于点击事件展示提示框、点击外部即可隐藏 触发点击事件&#xff0c;展示div可以用 v-show判断 隐藏div的方法如下 在utils增加文件 clickoutside.js / 点击外部隐藏div const clickoutside {// 初始化指令bind(el, binding, vnode…

传函分解并联形式matlab,第三章控制系统数学模型【PPT课件】

【导读】上次课简单回顾&#xff1a;matlab基础。2)线性定常系统&#xff1a;线性系统、系数不随时间变化&#xff1b;先得到的就是一个微分方程。统进行性能分析。4)微分方程是控制系统模型的基础。1)建立该电路的微分方程式&#xff1b;电压的关系曲线。?1)确定电路的输入和…

display: box让多个div并排显示

在平时做项目的时候 常常会用到让多个div并排显示 有多种方法可以解决此问题&#xff0c;本人已更新最新文章&#xff08;多种方法解决div并排显示问题&#xff09; 这里主要以display: box示例 如图让三个不同颜色的div并排显示在框内 此刻的代码为&#xff1a; <style&g…