这篇文章主要为大家详细介绍了vue使用监听实现全选反选功能,具有一定的参考价值,可以用来参考一下。
感兴趣的小伙伴,下面一起跟随四海网的小编两巴掌来看看吧!
最近在学习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使用监听实现全选反选功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对四海网网站的支持!
本文来自:http://www.q1010.com/184/5294-0.html
注:关于vue使用监听实现全选反选功能的内容就先介绍到这里,更多相关文章的可以留意四海网的其他信息。
关键词:vue.js
四海网收集整理一些常用的php代码,JS代码,数据库mysql等技术文章。