微信小程序中,经常可见选择地区或者商品分类或者其他的分类,选择后显示,选择后删除
先介绍一下主要功能:点击 ‘地区’ ,下面选择区域出现,点击 ‘选择地区’ 中的按钮,上面 ‘已选地区’ 显示选择的地区,点击 ‘x’ 已选的地区就取消,点击 “完成” 整个选择区域隐藏,只留下地区。

整体样式用的弹性布局,就不细说了。

wxml:

<view class="container"><text bindtap="show" class="color">地区</text><view class="choose" wx-if="{{a}}"><!-- 已选地区 --><view class="chosed"><view class="chosedtop"><text>已选地区</text><text bindtap="finish">完成</text></view><view class="view"><view class="position" wx:for='{{area}}' wx:key='index'><button class="buttond">{{item}}</button><image src='' bindtap="shut" data-index="{{index}}" data-name="{{item}}"></image>//这是按钮右上角的关闭图片</view></view></view><!-- 选择地区 --><view class="area"><text>选择地区</text><view class="chos"><block wx:for='{{array}}' wx:key='index'><button class="button {{tabindex == index?'active':''}}" data-index="{{index}}" data-name="{{item}}" bindtap="tabarea">{{item}}</button></block></view></view></view>
</view>

js:

var chosedarea = [];
var area = [];
Page({ data: {a:false,tabindex:0,array: ["北京", '南京', '上海', '天津', '杭州', '云南', "北京", '南京', '上海', '天津', '杭州', '云南',"北京", '南京', '上海', '天津', '杭州', '云南'],},// 选地区tabarea:function(e){this.setData({tabindex:e.currentTarget.dataset.index});var id = e.currentTarget.dataset.index;var name = e.currentTarget.dataset.name;chosedarea.push(name);this.setData({"area": chosedarea})},// 取消已选地区shut:function(e){this.setData({index: e.currentTarget.dataset.index,name : e.currentTarget.dataset.name});var yid = e.currentTarget.dataset.index;var yname = e.currentTarget.dataset.name;chosedarea.splice(yid,1)this.setData({"area": chosedarea})},// 点击完成隐藏finish:function(){var that = this;if (that.data.a == true) {that.setData({a: false   })}},// 点击地区显示show:function(){var that = this;if (that.data.a == false) {that.setData({a: true    })}},})

css

.container{width: 100%;height: 300rpx;
}
.choose{width: 100%;
}
.buttond{width: 88%;padding: 0;height: 68rpx;line-height: 68rpx;font-size: 32rpx;margin-bottom: 10rpx;
}
.area{display: flex;flex-direction: column;margin: 0 20rpx;
}
.chos{display: flex;flex-wrap: wrap;margin-top: 15rpx;
}
.button{width: 22%;padding: 0;height: 68rpx;line-height: 68rpx;font-size: 32rpx;margin: 0 10rpx;margin-bottom: 10rpx;
}
.view{display: flex;flex-wrap: wrap;height: auto;margin: 0 20rpx;
}
.position{width: 24%;
}
.chosedtop{display: flex;justify-content: space-between;margin: 0 30rpx 15rpx
}

如果是选完 上面添加了对应的 下面可选择的与之对应的要隐藏掉 就这样:

js中

// 选地区tabarea: function (e) {let that = this;that.setData({tabindex: e.currentTarget.dataset.index});var id = e.currentTarget.dataset.index;var name = e.currentTarget.dataset.name;chosedarea.push(name);that.data.array.splice(id, 1);that.setData({"area": chosedarea,"array": that.data.array})},

在上面点击删除的话 下面可选择的区域要对应的添加上:

wxml:

<view class="container"><text bindtap="show" class="color">地区</text><view class="choose" wx-if="{{a}}"><!-- 已选地区 --><view class="chosed"><view class="chosedtop"><text>已选地区</text><text bindtap="finish">完成</text></view><view class="view"><view class="position" wx:for='{{area}}' wx:key='index'><button class="buttond" data-index="{{index}}" data-name="{{item}}" bindtap="addName">{{item}}</button><!-- <image src='' bindtap="shut" data-index="{{index}}" data-name="{{item}}"></image> --><!-- //这是按钮右上角的关闭图片 --></view></view></view><!-- 选择地区 --><view class="area"><text>选择地区</text><view class="chos"><block wx:for='{{array}}' wx:key='index'><button class="button {{tabindex == index?'active':''}}" data-index="{{index}}" data-name="{{item}}" bindtap="tabarea">{{item}}</button></block></view></view></view>
</view>

js

var chosedarea = [];
var area = [];
Page({data: {a: false,tabindex: 0,array: ["北京", '南京', '上海', '天津', '杭州', '云南', "新疆", '黑龙江', '东北', '威海', '宁夏', '广西', "西安", '山东', '青岛', '济南', '烟台', '蓬莱'],},// 选地区tabarea: function (e) {let that = this;that.setData({tabindex: e.currentTarget.dataset.index});var id = e.currentTarget.dataset.index;var name = e.currentTarget.dataset.name;chosedarea.push(name);that.data.array.splice(id, 1);that.setData({"area": chosedarea,"array": that.data.array})},// 添加回addName:function(e){let that = this;console.log(e)that.setData({index: e.currentTarget.dataset.index,})var aname = e.currentTarget.dataset.name;chosedarea.splice(that.data.index,1);that.data.array.push(aname);that.setData({"area": chosedarea,"array": that.data.array})},// 取消已选地区shut: function (e) {this.setData({index: e.currentTarget.dataset.index,name: e.currentTarget.dataset.name});var yid = e.currentTarget.dataset.index;var yname = e.currentTarget.dataset.name;chosedarea.splice(yid, 1)this.setData({"area": chosedarea})},// 点击完成隐藏finish: function () {var that = this;if (that.data.a == true) {that.setData({a: false})}},// 点击地区显示show: function () {var that = this;if (that.data.a == false) {that.setData({a: true})}},
})

微信小程序选择内容显示相应内容相关推荐

  1. 如何修改微信小程序里面的导航栏内容

    第一步需要在pages.json里面你所要修改的页面添加内容: 比如在首页上修改以下配置: 但是微信小程序并不兼容改变顶部导航栏的内容,所以我们必须要原本的基础上添加一些配置如:navigationS ...

  2. 微信小程序选择框问题 小程序picker点击显示object range-key=这里写要显示的字段

    微信小程序选择框问题 小程序picker点击显示object range-key="这里写要显示的字段" <picker bindchange="bindClass ...

  3. 微信小程序:笑话段子手微信小程序源码自带内容采集随时有新内容

    这是一款笑话段子的一款微信小程序源码 内容支持采集而来,所以不需要担心内容的问题 该小程序目前分三个分类,推荐,段子 ,图片 安装方法, 使用微信开发者工具打开源码 然后设置一个合法域名 设置好了以后 ...

  4. 第21课 微信小程序视频标签显示弹幕

    第21课 微信小程序视频标签显示弹幕 效果图如下: wxml代码如下: <videosrc="http://wxsnsdy.tc.qq.com/105/20210/snsdyvideo ...

  5. 微信小程序选择和上传图片

    文章目录 微信小程序选择和上传图片 微信小程序选择和上传图片 选择和上传图片用到的api: wx.chooseImage() 和 wx.uploadFile() 具体实现代码如下: wx.choose ...

  6. 微信小程序点播插件_微信小程序 wxParse插件显示视频问题

    修改wxParse/html2json.js 文件 ,在 html2json(html, bindName)方法里 var node = { node: 'element', tag: tag, }; ...

  7. 电脑版微信小程序全屏显示方法,手机横屏方法。

    电脑版微信小程序全屏显示方法: 在app.json中加入:"resizable": true 注意要与"pages"同级,网上有许多错误方法! 手机横屏方法: ...

  8. uni-app分割线微信小程序端不显示

    uni-app分割线微信小程序端不显示 文章目录 uni-app分割线微信小程序端不显示 问题描述 解决方案 问题描述 做项目时,遇到一个问题: 自定义的分割线组件在web端能显示,在微信小程序端却不 ...

  9. 微信小程序选择视频,获取封面缩略图

    使用微信小程序选择视频,且获取其封面 使用微信小程序选择视频上传,且获取其封面 背景 名词 参考 效果图展示 结束: 使用微信小程序选择视频上传,且获取其封面 背景 又一活儿,要从小程序里选择视频,上 ...

  10. 关于微信小程序图片不显示的问题解决方案

    关于微信小程序图片不显示的问题解决方案 经过查阅资料发现如下文档导致图片不显示: 1.本地图片是用image加载的:src="../../../images/ic_header.jpg&qu ...

最新文章

  1. 数据结构(05)— 线性单链表实战
  2. win定时关机_如何将电脑设置为定时关机?
  3. C语言static 具体分析
  4. 洞悉物联网发展1000问之ZigbeePRO技术会卷土重来占领物联网吗
  5. CSS3 Perspective
  6. (转)调用System.gc没有立即执行的解决方法
  7. Oracle 数据文件 实际使用量 计算说明
  8. 李清照(诗词介绍收藏)
  9. Photoshop:如何使图片覆盖在文字上以及一种海报效果实现
  10. 习题3第五题:分析习题2第四题所述的患者监护系统。试用实体联系图描绘本系统的数据对象,画出本系统的顶层IPO图。
  11. 用Python处理EXCEL表格(Openpyxl)
  12. 【MAX7800羽毛板更新固件及下载bug修复】
  13. 惹某人突然不舍de第七周(习题+感悟)
  14. 公开在线讲座|Tamer Özsu教授:图处理-全景式视角和开放性问题
  15. 高斯坐标反算公式——python实现
  16. 均值滤波器类型_图像处理基础(3):均值滤波器及其变种
  17. Deep Learning(Ian Goodfellow) — Chapter1 Introduction
  18. 牛逼,一款不限速的超级下载器
  19. HTML5标签canvas制作平面图
  20. 10款存储设备测试软件

热门文章

  1. Homebrew 安装与配置 JDK
  2. 如何使用Eclipse进行java程序开发?
  3. Casein-PEG-Indocyanine green 络蛋白-聚乙二醇-吲哚菁绿 Casein-ICG
  4. pytest中前置setup和后置teardown的使用方法
  5. Numbers创建堆叠柱状图
  6. 数字历史地理教室教育装备设备配套清单
  7. 市场信心恢复,中概股反弹,水滴上涨超14%
  8. 形式参数和实际参数的区别
  9. UE4官方课程笔记(1)——游戏设计师的蓝图与游戏玩法
  10. 大数据数仓建模 - 维度建模 实战及思路过程 (两年数仓建模经验 纯干货)