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

实现单选

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

实现方式:

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。

更多内容欢迎关注。

有用的话欢迎赞赏。

相关推荐
黑马程序员毕设8 分钟前
非遗文化展览系统设计与实现
人工智能·spring boot·后端·微信小程序·毕设
维双云2 小时前
专业开发小程序公司有哪些:从项目交付能力判断服务商
小程序
show4332 小时前
2026多格式导出技术方案:小程序端免费TXT/Word/SRT生成实践
小程序·word
维双云16 小时前
社区生鲜小程序怎么做?4个经营环节。
小程序·零售
2601_9499506319 小时前
成绩提升不靠盲目刷题:用练题簿找准真正的薄弱知识点
学习·小程序·刷题·小程序推荐
今日热点20 小时前
微信小程序主体变更公证全流程实操解析:场景条件、材料规范、驳回避坑与Python校验脚本实现
python·微信小程序·小程序
Buke..20 小时前
【小程序逆向】某游快爆 AI 逆向 sign参数:AI 辅助分析与 MCP 工具链实战
前端·人工智能·爬虫·python·小程序·notepad++
T01156181 天前
艺培场馆课时预约小程序用户端 & 后台联动踩坑上篇(预约、课时、缓存、消息、学员端自身问题)
java·缓存·小程序·bug·全栈项目实战手记·艺培课时系统‘’
fthux1 天前
下一次提交,隔了八年:掘金小程序回来了
微信小程序·开源·github