vue项目里实现点击切换样式的效果

一开始的做法是这样的:

1、从后端获取到的数组adrList里遍历,给每个数组对象加一个check属性,只有一个是true,点击不同的对象的时候,会把当前对象变为true,其他的为false。(这样做是因为本身也需要把指定的check属性作为是否选中的标识传给后台,所以需要动态给数组adrList添加)

checkList:function(index){
   var Tindex = index;
   for(let i=0;i<this.adrList.length;i++){
       this.adrList[i].check = false;
   }
   this.adrList[Tindex].check = true;
}

2、接着使用三元表达式进行动态判断更改class,以达到更改选中样式的效果

:class = "[item.check==true?"checkbox active":"checkbox"]"

然后,不行。好像无法动态改变(据我测试哈,如有不对,请大佬务必指正)

“Object.defineProperty 的实现所存在的很多限制:无法监听属性的添加和删除、数组索引和长度的变更”,我觉得原因来自于这里。那如何去实现点击切换样式的效果呢?

data(){
  return{
    flag:0,
  }
}
checkList:function(index){
   this.flag = index;
}
:class="{active:index==flag}"

然后问题就解决了
github相关问题传送门:https://github.com/chendishen/bugList

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 概要 64学时 3.5学分 章节安排 电子商务网站概况 HTML5+CSS3 JavaScript Node 电子...
    阿啊阿吖丁阅读 9,429评论 0 3
  • HTML 5 HTML5概述 因特网上的信息是以网页的形式展示给用户的,因此网页是网络信息传递的载体。网页文件是用...
    阿啊阿吖丁阅读 4,172评论 0 0
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,171评论 1 32
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 11,308评论 6 13
  • ## 框架和库的区别?> 框架(framework):一套完整的软件设计架构和**解决方案**。> > 库(lib...
    Rui_bdad阅读 3,036评论 1 4