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+WebService 校验账号是否已被注册的代码
Jul 12 Javascript
Javascript技巧之不要用for in语句对数组进行遍历
Oct 20 Javascript
JavaScript调用堆栈及setTimeout使用方法深入剖析
Feb 16 Javascript
Node.js中的事件驱动编程详解
Aug 16 Javascript
JavaScript计时器示例分析
Feb 05 Javascript
浅谈JavaScript 的执行顺序
Aug 07 Javascript
jquery实现可自动收缩的TAB网页选项卡代码
Sep 06 Javascript
BootStrap的双日历时间控件使用
Jul 25 Javascript
不使用 JS 匿名函数理由
Nov 17 Javascript
vue结合element-ui使用示例
Jan 24 Javascript
深度了解vue.js中hooks的相关知识
Jun 14 Javascript
jquery实现手风琴案例
May 04 jQuery
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时间戳格式化显示友好的时间函数分享
2014/10/21 PHP
PHP数据库表操作的封装类及用法实例详解
2016/07/12 PHP
使用Microsoft Ajax Minifier减小JavaScript文件大小的方法
2010/04/01 Javascript
JS禁用浏览器退格键实现思路及代码
2013/10/29 Javascript
jQuery中not()方法用法实例
2015/01/06 Javascript
jQuery实现流动虚线框的方法
2015/01/29 Javascript
你所未知的3种Node.js代码优化方式
2016/02/25 Javascript
微信小程序使用第三方库Underscore.js步骤详解
2016/09/27 Javascript
vue.js中Vue-router 2.0基础实践教程
2017/05/08 Javascript
js学习总结之DOM2兼容处理this问题的解决方法
2017/07/27 Javascript
解决Vue2.0自带浏览器里无法打开的原因(兼容处理)
2017/07/28 Javascript
javascript字体颜色控件的开发 JS实现字体控制
2017/11/27 Javascript
vue自动化表单实例分析
2018/05/06 Javascript
ES6之模版字符串的具体使用
2018/05/17 Javascript
JavaScript继承定义与用法实践分析
2018/05/28 Javascript
使用svg实现动态时钟效果
2018/07/17 Javascript
Vue组件Draggable实现拖拽功能
2018/12/01 Javascript
jQuery实现适用于移动端的跑马灯抽奖特效示例
2019/01/18 jQuery
vue使用代理解决请求跨域问题详解
2019/07/24 Javascript
py2exe 编译ico图标的代码
2013/03/08 Python
python记录程序运行时间的三种方法
2017/07/14 Python
python判断文件夹内是否存在指定后缀文件的实例
2019/06/10 Python
Python3内置模块之base64编解码方法详解
2019/07/13 Python
Python创建数字列表的示例
2019/11/28 Python
python将数组n等分的实例
2019/12/02 Python
pycharm安装及如何导入numpy
2020/04/03 Python
五一家具促销方案
2014/01/10 职场文书
汉语言文学职业规划
2014/02/14 职场文书
《春到梅花山》教学反思
2014/04/16 职场文书
英文推荐信格式范文
2014/05/09 职场文书
师德师风剖析材料
2014/09/30 职场文书
一般纳税人申请报告
2015/05/18 职场文书
复兴之路观后感3000字
2015/06/02 职场文书
python中tkinter复选框使用操作
2021/11/11 Python
Nginx+Windows搭建域名访问环境的操作方法
2022/03/17 Servers
python中pymysql包操作数据库方法
2022/04/19 Python