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技术-屏蔽类
Aug 15 Javascript
JS对URL字符串进行编码/解码分析
Oct 25 Javascript
js获取ajax返回值代码
Apr 30 Javascript
node.js中的fs.open方法使用说明
Dec 17 Javascript
javascript数组去重的六种方法汇总
Aug 16 Javascript
常常会用到的截取字符串substr()、substring()、slice()方法详解
Dec 16 Javascript
jQuery使用contains过滤器实现精确匹配方法详解
Feb 25 Javascript
jQuery ajax全局函数处理session过期后的ajax跳转问题
Jun 03 Javascript
使用JS读取XML文件的方法
Nov 25 Javascript
详解微信小程序开发—你期待的分享功能来了,微信小程序序新增5大功能
Dec 23 Javascript
基于Datatables跳转到指定页的简单实例
Nov 09 Javascript
使用vue2实现购物车和地址选配功能
Mar 29 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中冒号、endif、endwhile、endfor使用介绍
2010/04/28 PHP
php GeoIP的使用教程
2011/03/09 PHP
php下载excel无法打开的解决方法
2013/12/24 PHP
PHP 数组基本操作方法详解
2016/06/17 PHP
PHP与服务器文件系统的简单交互
2016/10/21 PHP
Yii2结合Workerman的websocket示例详解
2018/09/10 PHP
中国地区三级联动下拉菜单效果分析
2012/11/15 Javascript
jQuery使用一个按钮控制图片的伸缩实现思路
2013/04/19 Javascript
基于Bootstrap+jQuery.validate实现Form表单验证
2014/12/16 Javascript
利用jQuery中的ajax分页实现代码
2016/02/25 Javascript
微信JS-SDK自定义分享功能实例详解【分享给朋友/分享到朋友圈】
2016/11/25 Javascript
微信小程序 检查接口状态实例详解
2017/06/23 Javascript
SeaJS中use函数用法实例分析
2017/10/10 Javascript
用JS实现根据当前时间随机生成流水号或者订单号
2018/05/31 Javascript
vue组件之间的数据传递方法详解
2019/04/19 Javascript
JavaScript JSON数据处理全集(小结)
2019/08/15 Javascript
JQuery实现ul中添加LI和删除指定的Li元素功能完整示例
2019/10/16 jQuery
原生javascript实现类似vue的数据绑定功能示例【观察者模式】
2020/02/24 Javascript
OpenLayers3实现图层控件功能
2020/09/25 Javascript
[01:03:33]Alliance vs TNC 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/18 DOTA
Pyramid添加Middleware的方法实例
2013/11/27 Python
python fabric实现远程操作和部署示例
2014/03/25 Python
用实例解释Python中的继承和多态的概念
2015/04/27 Python
python二分查找算法的递归实现方法
2016/05/12 Python
Python反转序列的方法实例分析
2018/03/21 Python
Python发展史及网络爬虫
2019/06/19 Python
python 中如何获取列表的索引
2019/07/02 Python
Django 框架模型操作入门教程
2019/11/05 Python
解决pytorch-yolov3 train 报错的问题
2020/02/18 Python
python 负数取模运算实例
2020/06/03 Python
一句话工作感言
2014/03/01 职场文书
推荐信范文大全
2015/03/27 职场文书
小人国观后感
2015/06/11 职场文书
vue使用节流函数的踩坑实例指南
2021/05/20 Vue.js
MySQL中CURRENT_TIMESTAMP的使用方式
2021/11/27 MySQL
python实现简单的三子棋游戏
2022/04/28 Python