vue使用监听实现全选反选功能
更新时间:2018年07月06日 09:39:32 作者:粉墨听禅
最近做的项目用到了全选全不选功能,于是我就自己动手写了一个,基于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使用监听实现全选反选功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
相关文章
Vue全局使用less样式,组件使用全局样式文件中定义的变量操作
这篇文章主要介绍了Vue全局使用less样式,组件使用全局样式文件中定义的变量操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2020-10-10
在Vue3中使 echarts 图表宽度自适应变化的操作方法
本文介绍了在Vue3中使用ECharts时,如何使图表容器宽度自适应页面大小,通过修改模板中的div样式,将宽度设置为100%,并监听窗口大小变化事件,调用ECharts实例的resize方法,实现图表的自适应调整,感兴趣的朋友跟随小编一起看看吧2025-02-02
Vue开发中出现Loading Chunk Failed的问题解决
本文主要介绍了Vue开发中出现Loading Chunk Failed的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2022-03-03
Vue3中SetUp函数的参数props、context详解
我们知道setup函数是组合API的核心入口函数,下面这篇文章主要给大家介绍了关于Vue3中SetUp函数的参数props、context的相关资料,需要的朋友可以参考下2021-07-07


最新评论