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 相关文章推荐
jQuery实现动画效果的实例代码
May 07 Javascript
jQuery UI设置固定日期选择特效代码分享
Aug 27 Javascript
JavaScript中的原型prototype完全解析
May 10 Javascript
利用Javascript仿Excel的数据透视分析功能
Sep 07 Javascript
基于jquery实现的鼠标悬停提示案例
Dec 11 Javascript
jQuery插件FusionCharts实现的3D柱状图效果实例【附demo源码下载】
Mar 03 Javascript
JavaScript基础之流程控制语句的用法
Aug 31 Javascript
jq源码解析之绑在$,jQuery上面的方法(实例讲解)
Oct 13 jQuery
详解Vue 事件修饰符capture 的使用
Dec 29 Javascript
微信小程序模板template简单用法示例
Dec 04 Javascript
使用Vue父子组件通信实现todolist的功能示例代码
Apr 11 Javascript
让IDE识别webpack的别名alias的实现方法
May 06 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/06/20 PHP
phpinfo的知识点总结
2019/10/10 PHP
JQuery 小练习(实例代码)
2009/08/07 Javascript
超级24小时弹窗代码 24小时退出弹窗代码 100%弹窗代码(IE only)
2010/06/11 Javascript
基于Jquery制作的幻灯片图集效果打包下载
2011/02/12 Javascript
通过Javascript将数据导出到外部Excel文档的函数代码
2012/06/15 Javascript
javascript学习笔记(十一) 正则表达式介绍
2012/06/20 Javascript
Jquery index()方法 获取相应元素索引值
2012/10/12 Javascript
JavaScript设置IFrame高度自适应(兼容各主流浏览器)
2013/06/05 Javascript
js获取元素相对窗口位置的实现代码
2014/09/28 Javascript
node.js中的fs.writeSync方法使用说明
2014/12/15 Javascript
jQuery操作DOM之获取表单控件的值
2015/01/23 Javascript
JavaScript实现的多个图片广告交替显示效果代码
2015/09/04 Javascript
简单总结JavaScript中的String字符串类型
2016/05/26 Javascript
Angularjs 自定义服务的三种方式(推荐)
2016/08/02 Javascript
js编写的treeview使用方法
2016/11/11 Javascript
微信小程序 MD5加密登录密码详解及实例代码
2017/01/12 Javascript
CentOS 安装NodeJS V8.0.0的方法
2017/06/15 NodeJs
详解ElementUI之表单验证、数据绑定、路由跳转
2017/06/21 Javascript
js实现图片放大展示效果
2017/08/30 Javascript
vue父组件点击触发子组件事件的实例讲解
2018/02/08 Javascript
vue渲染时闪烁{{}}的问题及解决方法
2018/03/28 Javascript
jQuery实现基本淡入淡出效果的方法详解
2018/09/05 jQuery
利用jquery和BootStrap实现动态滚动条效果
2018/12/03 jQuery
Javascript实现鼠标移入方向感知
2020/06/24 Javascript
python无序链表删除重复项的方法
2020/01/17 Python
Python 爬虫的原理
2020/07/30 Python
python中count函数知识点浅析
2020/12/17 Python
CSS3属性使网站设计增强同时不消弱可用性
2009/08/29 HTML / CSS
护理职业生涯规划书
2014/01/24 职场文书
2014年父亲节活动方案
2014/03/06 职场文书
公司办公室岗位职责
2014/03/19 职场文书
幼儿园国庆节活动总结
2015/03/23 职场文书
党员“一帮一”活动总结
2015/05/07 职场文书
深入理解python协程
2021/06/15 Python
利用nginx搭建RTMP视频点播、直播、HLS服务器
2022/05/25 Servers