vue使用监听实现全选反选功能


Posted in Javascript onJuly 06, 2018

最近在学习vue这一块的内容,在项目中用到了全选全不选的功能,开始的时候借鉴了别人写的功能,但感觉写的有一些缺陷,然后就自己写了一套,如有写的不好的地方,请各位大佬指教,废话不多说,上代码。

首先定义数据

data: {
   /*全选、全不选*/
   allCheck:false,//全选功能
   //循环数据
   checkArr:[
     {cityName:"东城区",isCheck:false},
     {cityName:"西城区",isCheck:false},
     {cityName:"朝阳区",isCheck:false},
     {cityName:"丰台区",isCheck:false},
   ],
}

然后是页面代码:

<div>
   <div v-for="carType in checkArr">
     <p>
       <input type="checkbox" v-model="carType.isCheck"/>
       <a href="javascript:void(0)" rel="external nofollow" >{{carType.typeName}}</a>
    </p>
   </div>
</div>
<div>
  <input type="checkbox" id="chooseAllType" v-model="allCheck" @click="selectAll(allCheck)"/>
  全选
</div>

下面是js中代码

methods: {
  /*点击全选,选中所有复选框*/
  selectAll: function (data) {
    var _this = this;
    //如果父级被选中,那么子集循环,全被给checked=true
    if (!data) {
      _this.checkArr.forEach(function (item) {
        item.isCheck = true;
      });
    } else {
      //相反,如果没有被选中,子集应该全部checked=false
      _this.checkArr.forEach(function (item) {
        item.isCheck = false;
      });
    }
  },
}

下面是监听部分代码,主要功能为如果子集全部选中,全选按钮同样被勾选

watch:{
  /*监听全选事件*/
  checkArr:{
    handler(value){
      var _this = this;
      var count=0;
      for(var i=0;i<value.length;i++){
        if(value[i].isCheck==true){
          count++;
        }
      }
      //如果子集全部选中,全选按钮设置选中状态
      if(count==value.length){
        _this.allCheck=true;
      }else{
        _this.allCheck=false;
      }
    },
    deep:true
  },
}

总结

以上所述是小编给大家介绍的vue使用监听实现全选反选功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
javascript入门·图片对象(无刷新变换图片)\滚动图像
Oct 01 Javascript
javascript 函数速查表
Feb 07 Javascript
有关js的变量作用域和this指针的讨论
Dec 16 Javascript
JQuery与JSon实现的无刷新分页代码
Sep 13 Javascript
JQuery跳出each循环的方法
Apr 16 Javascript
JS利用cookie记忆当前位置的防刷新导航效果
Oct 15 Javascript
Vue2学习笔记之请求数据交互vue-resource
Feb 23 Javascript
基于js 各种排序方法和sort方法的区别(详解)
Jan 03 Javascript
为什么使用koa2搭建微信第三方公众平台的原因
May 16 Javascript
vue填坑之webpack run build 静态资源找不到的解决方法
Sep 03 Javascript
JavaScript键盘事件常见用法实例分析
Jan 03 Javascript
小程序富文本提取图片可放大缩小
May 26 Javascript
vue 实现数字滚动增加效果的实例代码
Jul 06 #Javascript
详解在Vue中使用TypeScript的一些思考(实践)
Jul 06 #Javascript
javascript显示动态时间的方法汇总
Jul 06 #Javascript
Django+Vue跨域环境配置详解
Jul 06 #Javascript
微信小程序画布圆形进度条显示效果
Nov 17 #Javascript
微信小程序实时聊天WebSocket
Jul 05 #Javascript
vue v-model实现自定义样式多选与单选功能
Jul 05 #Javascript
You might like
基于PHP生成静态页的实现方法
2013/05/10 PHP
php获取四位字母和数字的随机数的实现方法
2015/01/09 PHP
简单介绍PHP的责任链编程模式
2015/08/11 PHP
深入浅析php json 格式控制
2015/12/24 PHP
thinkPHP实现递归循环栏目并按照树形结构无限极输出的方法
2016/05/19 PHP
JavaScript 继承详解 第一篇
2009/08/30 Javascript
处理文本部分内容的TextRange对象应用实例
2014/07/29 Javascript
js实现带按钮的上下滚动效果
2015/05/12 Javascript
vue移动端裁剪图片结合插件Cropper的使用实例代码
2017/07/10 Javascript
20行JS代码实现粘贴板复制功能
2018/02/06 Javascript
手把手教你使用TypeScript开发Node.js应用
2019/05/06 Javascript
详解Vue 单文件组件的三种写法
2020/02/19 Javascript
vue-cli —— 如何局部修改Element样式
2020/10/22 Javascript
Python写的PHPMyAdmin暴力破解工具代码
2014/08/06 Python
python中实现php的var_dump函数功能
2015/01/21 Python
Python最基本的数据类型以及对元组的介绍
2015/04/14 Python
python numpy 显示图像阵列的实例
2018/07/02 Python
在python中pandas的series合并方法
2018/11/12 Python
Python实现的对本地host127.0.0.1主机进行扫描端口功能示例
2019/02/15 Python
8种用Python实现线性回归的方法对比详解
2019/07/10 Python
解决python tkinter界面卡死的问题
2019/07/17 Python
Python代码生成视频的缩略图的实例讲解
2019/12/22 Python
利用PyTorch实现VGG16教程
2020/06/24 Python
伦敦最有品味的百货:Liberty London
2016/11/12 全球购物
Tostadora意大利:定制T恤
2019/04/08 全球购物
波兰在线儿童和婴儿用品零售商:pinkorblue
2019/06/29 全球购物
财务与信息服务专业推荐信
2013/11/28 职场文书
开业主持词
2014/03/21 职场文书
小学语文业务学习材料
2014/06/02 职场文书
企业公益活动策划方案
2014/08/24 职场文书
大学生赌博检讨书
2014/09/22 职场文书
大专毕业生自我鉴定范文(2篇)
2014/09/27 职场文书
大学生党员自我剖析材料
2014/10/06 职场文书
工伤私了协议书范本
2014/11/24 职场文书
公司会议开幕词
2015/01/29 职场文书
解决MySQL存储时间出现不一致的问题
2021/04/28 MySQL