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 相关文章推荐
服务端 VBScript 与 JScript 几个相同特性的写法 By shawl.qiu
Mar 06 Javascript
判断JavaScript对象是否可用的最正确方法分析
Oct 03 Javascript
JS中eval函数的使用示例
Jul 21 Javascript
JavaScript里实用的原生API汇总
May 14 Javascript
json格式数据的添加,删除及排序方法
Jan 21 Javascript
javaScript事件学习小结(四)event的公共成员(属性和方法)
Jun 09 Javascript
Zepto实现密码的隐藏/显示
Apr 07 Javascript
vue 下列表侧滑操作实例代码详解
Jul 24 Javascript
在vue中v-bind使用三目运算符绑定class的实例
Sep 29 Javascript
浅入深出Vue之组件使用
Jul 11 Javascript
layui 选择列表,打勾,点击确定返回数据的例子
Sep 02 Javascript
通过实例解析js可枚举属性与不可枚举属性
Dec 02 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 use和include区别总结
2019/10/13 PHP
Script的加载方法小结
2011/01/12 Javascript
获取css样式表内样式的js函数currentStyle(IE),defaultView(FF)
2011/02/14 Javascript
javascript实现下拉提示选择框
2015/12/29 Javascript
深入浅析AngularJS中的module(模块)
2016/01/04 Javascript
Ajax+FormData+javascript实现无刷新表单信息提交
2016/10/24 Javascript
jQuery下拉菜单的实现代码
2016/11/03 Javascript
JavaScript Canvas绘制圆形时钟效果
2020/08/20 Javascript
利用JavaScript对中文(汉字)进行排序实例详解
2017/06/18 Javascript
详解小程序input框失焦事件在提交事件前的处理
2019/05/05 Javascript
微信小程序wx.request拦截器使用详解
2019/07/09 Javascript
解决layui laydate 时间控件一闪而过的问题
2019/09/28 Javascript
jQuery实现的分页插件完整示例
2020/05/26 jQuery
VSCode Vue开发推荐插件和VSCode快捷键(小结)
2020/08/08 Javascript
在JavaScript中查找字符串中最长单词的三种方法(推荐)
2021/01/18 Javascript
[04:11]DOTA2亚洲邀请赛小组赛第一日 TOP10精彩集锦
2015/01/30 DOTA
python原始套接字编程示例分享
2014/02/21 Python
python实现在sqlite动态创建表的方法
2015/05/08 Python
Python numpy 常用函数总结
2017/12/07 Python
python装饰器-限制函数调用次数的方法(10s调用一次)
2018/04/21 Python
PyCharm+PySpark远程调试的环境配置的方法
2018/11/29 Python
selenium3+python3环境搭建教程图解
2018/12/07 Python
详解Python的三种可变参数
2019/05/08 Python
python使用mitmproxy抓取浏览器请求的方法
2019/07/02 Python
树莓派极简安装OpenCv的方法步骤
2019/10/10 Python
pytorch 实现查看网络中的参数
2020/01/06 Python
Jupyter notebook设置背景主题,字体大小及自动补全代码的操作
2020/04/13 Python
纯CSS改变webkit内核浏览器的滚动条样式
2014/04/17 HTML / CSS
飞利浦法国官网:Philips法国
2019/07/10 全球购物
Pandora德国官网:购买潘多拉手链、戒指、项链和耳环
2020/02/20 全球购物
初中生三年学习生活的自我评价
2013/11/03 职场文书
停课通知书
2015/04/24 职场文书
文艺晚会开场白
2015/05/29 职场文书
标准发言稿结尾
2019/07/18 职场文书
导游词之海南天涯海角
2019/12/05 职场文书
JVM钩子函数的使用场景详解
2021/08/23 Java/Android