作者:低調浮華 | 来源:互联网 | 2023-08-30 08:13
这是一个房产项目的多选标签的一个小功能;效果图就是博客最下方的图片,可以选中多个标签;思路我个人的思路是用一个值来控制这个标签是否是选中状态,当states为1的时候是选中状态,s
这是一个房产项目的多选标签的一个小功能;效果图就是博客最下方的图片,可以选中多个标签;
思路
- 我个人的思路是用一个值来控制这个标签是否是选中状态,当states为1的时候是选中状态,states为0的时候是未选中状态;
- 首先在获取列表的时候,先把第一项的值改成states=1,然后把该数组展示在页面上;
- 然后在点击时候获取到点击的这个标签的id和其他属性(看实际需求);
实现
- 处理数组
首先使用小程序的ajax获取到列表信息,并且改变数组第一项的states为1;
// res.data.data.fybiaoqian是后台返回的标签数据;
var lists = res.data.data.fybiaoqian;
for (let j = 0; j
- 页面展示
房源标签
{{item.lxming}}
- 点击事件
showTips(e) {
var index = e.currentTarget.dataset.index; //选中状态index;
var lists = this.data.lists; // 页面展示的数组;
var states = lists[index].states; // 选中状态的状态值;
var idsArr = []; // 保存选中数据的数组;
var idss = []; // 保存选中数据的id数组;
var ids = ""; // 选中状态下的id字符串;
/*
* 当第一次点击的时候是states为undefined(因为获取数组的时候只改变了第一项的states为1);
* states变为1(也就是橙色选中状态),然后再点击,变为0(也就是灰色未选中状态);
*/
if (states == undefined || states == 0) {
lists[index].states = 1;
} else {
lists[index].states = 0;
}
// 使用filter筛选出选中状态的值,保存到idsArr数组中;
idsArr = lists.filter(function (element, index, all) {
return element.states == 1;
})
// 循环筛选之后的值,把他们的id插入到idss数组中;
for (let i = 0; i
效果图