微信小程序实现列表渲染及其点击事件

微信小程序实现列表渲染及其点击事件

列表渲染及其点击事件的需求:

  1. 列表渲染的实现:
  • 列表渲染很简单,一种是从js/数据库中导出imglist到wxml中wx:for="{{imgList}}"即可完成渲染,另一种就是我下面的方法,用src=“https://xxx/xxx/{{index+1}}.jpeg"亦可,只不过得在js的data里面加上对图片数目进行初始定义,这里举例采用腾讯云云存储,存入图片之前命名为"1” “2” “3”…这样就可以对图片进行递增渲染{{index+1}}
  1. 点击事件的实现:
  • 对imglist在image组件中添加属性data-id="{{index+1}}“对每个图片进行标记为"1” “2” “3”…然后在点击事件函数(举例:preview()函数)var id = e.currentTarget.dataset.id;定义并获取此时的id,每一个id对应一张图片,传递参数id即可对图片进行对应批量处理,代码如下:

列表渲染

效果示意图:
在这里插入图片描述

代码:

wxml

<view class="weui-tab__content">
	<image class="imgList" wx:for="{{imgList}}" wx:key="key" src="https://xxx/xxx/{{index+1}}.jpeg" data-id="{{index+1}}" bindtap="preview"></image>
</view>

这里的index是从0开始,逐个加1,imglist是循环的个数

点击事件

效果示意图:
在这里插入图片描述
js

Page({
  /**
   * 页面的初始数据
   */
  data: {
    imgList: [1,1,1,1,1,1,1,1,1,1,1,12,1,1,1,1,1,1,1,1,1,1,1,24]
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function () {

  },
  preview: function (e) {
    var id = e.currentTarget.dataset.id;
    this.previewImg(id)
  },
  previewImg: function (index) {
  wx.previewImage({
    urls: ['https://xxx/xxx/' + index + '.jpeg'] // 需要预览的图片http链接列表
  })
}
})

wxss

page {
  width: 100%;
  height: 100%;
  background-color: #f8f8f8;
}
.weui-tab__content{
  margin-top: 20rpx;
  text-align: center;
}
.imgList{
  height: 170rpx;
  width: 170rpx;
  border:1px solid gainsboro;
  margin-left: 6rpx;
}

总结:

data初始定义个数组对应各张数组元素(文字、图片、按钮…),用wx:for遍历,同时用data-xx属性记录好index下标,bindtap只需要写一个处理函数就好, e.target.dataset.xx得到下标,每一个下标拿到每一个参数即可完成。很多列表渲染(list、group…)及其点击事件都是用这同一种方法解决的。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值