微信小程序 TODO案例
2022/7/23 14:22:57
本文主要是介绍微信小程序 TODO案例,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
源于 https://ask.csdn.net/questions/7759861 进行了简化。
效果
代码
index.js
Page({ data: { // 待办列表 todoList: [ { thing: '洗衣服', completed: false }, { thing: '刷鞋', completed: false }, { thing: '写代码', completed: false } ], // 待办事务 todoThing: "" }, // 待办点击 todoClick(e) { // 从wxml传入的点击的索引 let index = e.currentTarget.dataset.index; this.setData({ // 通过索引进行更改条目 [`todoList[${index}].completed`]: !this.data.todoList[index].completed }) }, // 待办输入 todoThingInput(e) { this.setData({ todoThing: e.detail.value }) }, // 添加按钮 addClick() { this.setData({ // 再数组最后追加一条 [`todoList[${this.data.todoList.length}]`]: { thing: this.data.todoThing, completed: false }, // 新增后清空输入框 todoThing: '' }) }, // 删除按钮 deleteClick(e) { // 从wxml传入的点击的索引 let index = e.currentTarget.dataset.index; // 删除todoList索引为index的条目 this.data.todoList.splice(index, 1) this.setData({ // 对数组重新赋值 todoList: this.data.todoList }) } })
index.wxml
<wxs module="tools"> module.exports.getProgress = function (todo) { var length = todo.length; var checked = 0; for (var i = 0; i < todo.length; i++) { if (todo[i].completed) { checked++; } } return '完成度:' + (checked / length * 100).toFixed(2) + '%' } </wxs> <view class="todo-completion">{{tools.getProgress(todoList)}}</view> <view class="todo-list"> <view class="todo-item" wx:for="{{todoList}}" wx:key="unique" bindtap="todoClick" data-index="{{index}}"> <!-- 点击条目增加删除线 --> <view class="todo-form-label {{item.completed?'delete-line':''}}"> <radio checked="{{item.completed}}" /> {{item.thing}} </view> <!-- catchtap阻止冒泡并绑定事件 --> <view class="todo-delete" catchtap="deleteClick" data-index="{{index}}">删除</view> </view> </view> <view class="todo-form"> <!-- bindconfirm 点击完成按钮时触发 --> <input class="form-item" type="text" placeholder="请输入想要做的事情" value="{{todoThing}}" bindinput="todoThingInput" bindconfirm="addClick" /> <button type="primary" bindtap="addClick">添加</button> </view>
index.wxss
.todo-form { padding: 20rpx 60rpx; } .todo-form .form-item { margin-bottom: 40rpx; font-size: 36rpx; } .todo-item .todo-form-label { /*
这篇关于微信小程序 TODO案例的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-20微信小程序开发入门指南
- 2024-12-20小程序 createCameraContext() 怎么实现识别条形码功能?-icode9专业技术文章分享
- 2024-11-22微信小程序的接口信息py可以抓到吗?-icode9专业技术文章分享
- 2024-11-22怎样解析出微信小程序二维码带的参数?-icode9专业技术文章分享
- 2024-11-22微信小程序二维码怎样解析成链接?-icode9专业技术文章分享
- 2024-11-22微信小程序接口地址的域名需要怎么设置?-icode9专业技术文章分享
- 2024-11-22微信小程序的业务域名有什么作用-icode9专业技术文章分享
- 2024-11-22微信小程序 image有类似html5的onload吗?-icode9专业技术文章分享
- 2024-11-22微信小程序中怎么实现文本内容超出行数后显示省略号?-icode9专业技术文章分享
- 2024-11-22微信小程序怎么实现分享样式定制和图片定制功能?-icode9专业技术文章分享