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实现的元素的left增加N像素 鼠标移开会慢慢的移动到原来的位置
Mar 21 Javascript
jquery的map与get方法详解
Nov 04 Javascript
Js实现双击鼠标自动滚动屏幕的示例代码
Dec 14 Javascript
js 与 php 通过json数据进行通讯示例
Mar 26 Javascript
IE下通过a实现location.href 获取referer的值
Sep 04 Javascript
JavaScript中发布/订阅模式的简单实例
Nov 05 Javascript
jQuery formValidator表单验证
Jan 07 Javascript
vue.js利用Object.defineProperty实现双向绑定
Mar 09 Javascript
Vue.js中extend选项和delimiters选项的比较
Jul 17 Javascript
在一个页面实现两个zTree联动的方法
Dec 20 Javascript
vue基础之模板和过滤器用法实例分析
Mar 12 Javascript
解决vue项目本地启动时无法携带cookie的问题
Feb 06 Vue.js
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中4个加速、缓存扩展的区别和选用建议
2014/03/12 PHP
五款PHP代码重构工具推荐
2014/10/14 PHP
PHP的new static和new self的区别与使用
2019/11/27 PHP
PHP时间相关常用函数用法示例
2020/06/03 PHP
js判断设备是否为PC并调整图片大小
2014/02/12 Javascript
jQuery获取节点和子节点文本的方法
2014/07/22 Javascript
上传图片js判断图片尺寸和格式兼容IE
2014/09/01 Javascript
JavaScript和CSS交互的方法汇总
2014/12/02 Javascript
express的中间件cookieParser详解
2014/12/04 Javascript
jQuery插件jqGrid动态获取列和列字段的方法
2017/03/03 Javascript
VUE元素的隐藏和显示(v-show指令)
2017/06/23 Javascript
Vue代码整洁之去重方法整理
2019/08/06 Javascript
node 文件上传接口的转发的实现
2019/09/23 Javascript
微信小程序后端无法保持session的原因及解决办法问题
2020/03/20 Javascript
js实现星星海特效的示例
2020/09/28 Javascript
python每次处理固定个数的字符的方法总结
2013/01/29 Python
从零学Python之入门(五)缩进和选择
2014/05/27 Python
详解Python异常处理中的Finally else的功能
2017/12/29 Python
Python Selenium 之关闭窗口close与quit的方法
2019/02/13 Python
Python实现的IP端口扫描工具类示例
2019/02/15 Python
python多线程分块读取文件
2019/08/29 Python
python__new__内置静态方法使用解析
2020/01/07 Python
在keras里实现自定义上采样层
2020/06/28 Python
电脑教师的教学自我评价
2013/11/26 职场文书
高中生职业生涯规划书
2014/02/24 职场文书
纠风工作实施方案
2014/03/15 职场文书
无私奉献演讲稿
2014/09/04 职场文书
国家税务局领导班子对照检查材料思想汇报
2014/10/04 职场文书
工厂标语大全
2014/10/06 职场文书
开会通知短信大全
2015/04/20 职场文书
作弊检讨书范文
2015/05/06 职场文书
女方家长婚礼答谢词
2015/09/29 职场文书
外出听课学习心得体会
2016/01/15 职场文书
创业计划书之废品回收
2019/09/26 职场文书
Python 高级库15 个让新手爱不释手(推荐)
2021/05/15 Python
vue项目如何打包之项目打包优化(让打包的js文件变小)
2022/04/30 Vue.js