微信小程序如何自定义单选和多选

实现单选

实现效果:点击显示单选状态,每次仅能点击一个元素。

实现方式:

wxml:

html 复制代码
<view wx:for="{{item_list}}" data-info="{{index}}" class="{{menu_index===index?'choose':'no_choose'}}" bind:tap="changeColor">{{item}}</view>

item_list是单选的元素,class定义了选中和未选中的显示形式,changeColor更新点击元素。

.wxss

css 复制代码
.choose{
  color: red;
  background-color: white;
  font-weight: bold;
}
.no-choose{
  color:black
}

定义选中和未选中的显示样式。

.js

javascript 复制代码
data:{
    item_list:['牛肉粉','小吃','加料','饮料']
},  
changeColor(e){
    this.setData({
      menu_index: e.currentTarget.dataset.info,
    });
  }

changeColor实时更新点击元素信息。

实现多选

实现效果:点击多个元素均能显示点击状态。

再次点击可取消选择:

.wxml

html 复制代码
<view wx:for="{{item_list}}" class="{{menu_index[index]==index?'choose':'no_choose'}}" data-index="{{index}}" bind:tap="changeColor">{{item}}</view>

item_list是单选的元素,class定义了选中和未选中的显示形式,changeColor更新点击元素。

.wxss

css 复制代码
.choose{
  color: red;
  background-color: white;
  font-weight: bold;
}
.no-choose{
  color:black
}

定义选中和未选中的显示样式。

.js

javascript 复制代码
data:{
    item_list:['牛肉粉','小吃','加料','饮料']
},  
changeColor(e){
    var m_index = this.data.menu_index
    var index = e.currentTarget.dataset.index
    var m = "menu_index."+ e.currentTarget.dataset.index
    if(m_index[index]==index){
      this.setData({
        [m]: -1
      })
    }else{
      this.setData({
        [m]: e.currentTarget.dataset.index
      })
    }
}

changeColor实时更新点击元素信息,将已点击元素保存包m_index,当元素处于选中状态m_indexindex的值等于传回的index,当元素再次被点击,取消点击状态时, m_indexindex=-1。

更多内容欢迎关注。

有用的话欢迎赞赏。

相关推荐
镭封9 小时前
自媒体内容生产怎么提速?文案整理、配音与剪辑流程
人工智能·小程序·音视频·语音识别·媒体
科威网络10 小时前
小程序开发性能优化:分包、预加载与启动时间
性能优化·微信小程序·小程序
派小心.16 小时前
App数据统计平台怎么选?从SDK接入到日活留存看板的技术实现
数据库·人工智能·小程序
互联网+人工智能观察17 小时前
微信小程序私有化定制、源码交付方案选型|SaaS / 模板二开 / 定制方案技术对比
微信小程序·小程序
微三云 - 廖会灵 (私域系统开发)17 小时前
小程序首屏从 3.2s 压到 1.1s:我们在这个订货商城项目上做的 7 个改动与 3 个踩坑
小程序
微擎应用市场18 小时前
二手闲置交易小程序管理系统
小程序
小小王app小程序开发18 小时前
潮玩抽赏小程序玩法开发分析
小程序
干啥啥不行,bug第一名18 小时前
小程序里不要用 requestAnimationFrame
小程序
96245618 小时前
一次 Kubernetes 临时存储压力引发的小程序授权雪崩:从 Pod 驱逐到定时任务漏执行
容器·小程序·kubernetes
imperialeast1 天前
WinAXP 2.4.0.830正式版
小程序·个人开发