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

实现单选

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

实现方式:

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。

更多内容欢迎关注。

有用的话欢迎赞赏。

相关推荐
微笑的曙光1 小时前
第一期 · 本地优先 MVP:不写一个后端,如何做出完整体验
微信小程序
EatFan2 小时前
Java接入微信支付保姆式教程(三):SpringBoot 接入微信支付并完成统一下单
微信小程序·微信支付·springboot
2601_949950634 小时前
练题簿:把备考资料装进小程序,随时开启高效在线刷题
人工智能·小程序·刷题·练习·小程序推荐
QQ_21696290964 小时前
基于SpringBoot+Vue的小生活平台的设计与实现
java·数据库·vue.js·spring boot·spring·微信小程序·生活
飞梦工作室4 小时前
H5页面能否直接播放视频号直播?实战方案与踩坑总结
微信小程序·小程序
河南花仙子科技19 小时前
企业定制小游戏助力品牌软性传播
大数据·科技·游戏·小程序
StevenLdh20 小时前
情绪小恐龙:一个微信小程序从架构设计到部署上线的全记录
微信小程序·小程序·notepad++
m0_5873830020 小时前
折扣卡CPS软件开发实战:从系统架构设计到上线指南
java·小程序·架构·需求分析
mykj155121 小时前
赛事报名小程序系统:一站式解决赛事管理难题
小程序·app开发·体育赛事报名小程序·赛事app
EatFan1 天前
Java接入微信支付保姆式教程(一):支付流程、商户号与环境准备
小程序·微信支付·jsapi支付