利用Vue.js实现checkbox的全选反选效果


Posted in Javascript onJanuary 18, 2017

前言

这篇文章主要是跟大家分享了利用Vue.js实现checkbox的全选反选效果,之前写的代码存在一个bug,就是当你选择全选的时候去掉后面的一个选项,再点全选结果就是反的了。后来很感谢朋友留言帮我改了这个问题嘻嘻,下面一起来看看具体是怎么实现的吧.

html示例代码

<template>
 <div>
 <input type='checkbox' class='input-checkbox' v-model='checked' v-on:click='checkedAll'>全选
 <template v-for='checkb in checkboxData'>
 <input type='checkbox' name='checkboxinput' class='input-checkbox' v-model='checkboxModel' value='{{checkb.id}}'>{{checkb.value}}
 </template>
 </div>
</template>

js示例代码

<script>
export default {
methods:{
 checkedAll: function() {
 var _this = this;
 console.log(_this.checkboxModel);
 if (this.checked) {//实现反选
 _this.checkboxModel = [];
 }else{//实现全选
 _this.checkboxModel = [];
 _this.checkboxData.forEach(function(item) {
 _this.checkboxModel.push(item.id);
 });
 }
 }
},
watch: {//深度 watcher
 'checkboxModel': {
 handler: function (val, oldVal) { 
 if (this.checkboxModel.length === this.checkboxData.length) {
 this.checked=true;
 }else{
 this.checked=false;
 }
 },
 deep: true
 }
},
data () {
 return {
 checkboxData:[{
 id:'1',
 value:'苹果'
 },{
 id:'2',
 value:'荔枝'
 },{
 id:'3',
 value:'香蕉'
 },{
 id:'4',
 value:'火龙果'
 }],
 checkboxModel:['1','3','4'],
 checked:""
 }
}
}
</script>

watch

类型: Object

详细:

一个对象,键是观察表达式,值是对应回调。值也可以是方法名,或者是对象,包含选项。在实例化时为每个键调用 $watch()

示例:

var vm = new Vue({
 data: {
 a: 1
 },
 watch: {
 'a': function (val, oldVal) {
 console.log('new: %s, old: %s', val, oldVal)
 },
 // 方法名
 'b': 'someMethod',
 // 深度 watcher
 'c': {
 handler: function (val, oldVal) { /* ... */ },
 deep: true
 }
 }
})
vm.a = 2 // -> new: 2, old: 1

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

Javascript 相关文章推荐
关于juqery radio写法的兼容性问题(新老版本jquery)
Jun 14 Javascript
浏览器加载、渲染和解析过程黑箱简析
Nov 29 Javascript
js阻止默认事件与js阻止事件冒泡示例分享 js阻止冒泡事件
Jan 27 Javascript
Node.js中的流(Stream)介绍
Mar 30 Javascript
js实现获取当前时间是本月第几周的方法
Aug 11 Javascript
jQuery实现可用于博客的动态滑动菜单完整实例
Sep 17 Javascript
js轮播图透明度切换(带上下页和底部圆点切换)
Apr 27 Javascript
layui 优化button按钮和弹出框的方法
Aug 15 Javascript
Webpack中loader打包各种文件的方法实例
Sep 03 Javascript
vue分页插件的使用方法
Dec 25 Javascript
jQuery擦除插件eraser使用方法详解
Jan 11 jQuery
JS高级程序设计之class继承重点详解
Jul 07 Javascript
微信小程序的动画效果详解
Jan 18 #Javascript
详解微信小程序开发之——wx.showToast(OBJECT)的使用
Jan 18 #Javascript
bootstrap配合Masonry插件实现瀑布式布局
Jan 18 #Javascript
JavaScript字符串对象(string)基本用法示例
Jan 18 #Javascript
Vue.js自定义指令的用法与实例解析
Jan 18 #Javascript
vue.js+Element实现表格里的增删改查
Jan 18 #Javascript
JS中Array数组学习总结
Jan 18 #Javascript
You might like
php header()函数使用说明
2008/07/10 PHP
PHP 简单数组排序实现代码
2009/08/05 PHP
PHP SPL标准库之接口(Interface)详解
2015/05/11 PHP
javascript 无提示关闭窗口脚本
2009/08/17 Javascript
Jquery getJSON方法详细分析
2013/12/26 Javascript
Javascript 按位取反运算符 (~)
2014/02/04 Javascript
jQuery 和 CSS 的文本特效插件集锦
2014/12/12 Javascript
JS+CSS实现分类动态选择及移动功能效果代码
2015/10/19 Javascript
学习jQuey中的return false
2015/12/18 Javascript
JavaScript蒙板(model)功能的简单实现代码
2016/08/04 Javascript
解析利用javascript如何判断一个数为素数
2016/12/08 Javascript
关于javascript事件响应的基础语法总结(必看篇)
2016/12/26 Javascript
详解闭包解决jQuery中AJAX的外部变量问题
2017/02/22 Javascript
js实现图片旋转 js滚动鼠标中间对图片放大缩小
2017/07/05 Javascript
IE11下使用canvas.toDataURL报SecurityError错误的解决方法
2017/11/19 Javascript
详解微信JS-SDK选择图片遇到的坑
2018/08/15 Javascript
浅析vue给不同环境配置不同打包命令
2018/08/17 Javascript
vue 纯js监听滚动条到底部的实例讲解
2018/09/03 Javascript
Vue的H5页面唤起支付宝支付功能
2019/04/18 Javascript
在vue-cli 3中给stylus、sass样式传入共享的全局变量
2019/08/12 Javascript
微信小程序中weui用法解析
2019/10/21 Javascript
Python实现删除Android工程中的冗余字符串
2015/01/19 Python
Python3.x版本中新的字符串格式化方法
2015/04/24 Python
python 正则表达式参数替换实例详解
2020/01/17 Python
Python+OpenCV图像处理——实现轮廓发现
2020/10/23 Python
Html5 语法与规则简要概述
2014/07/29 HTML / CSS
canvas 如何绘制线段的实现方法
2018/07/12 HTML / CSS
销售员求职个人的自我评价
2014/02/19 职场文书
《湘夫人》教学反思
2014/02/21 职场文书
2015最新婚礼司仪主持词
2015/06/30 职场文书
酒店宣传语大全
2015/07/13 职场文书
优秀党员先进事迹材料2016
2016/02/29 职场文书
纯CSS实现酷炫的霓虹灯效果
2021/04/13 HTML / CSS
python中的被动信息搜集
2021/04/29 Python
Golang 如何实现函数的任意类型传参
2021/04/29 Golang
Spring依赖注入多种类型数据的示例代码
2022/03/31 Java/Android