• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

微信小程序点击节点展开信息

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

由于小程序js限制没有列表,也无法通过id增删节点信息,故而只能通过一些其它的方法来实现。

需求:做一个详细信息展开的功能,即点击列表某一项时展开该项对应的详细信息

先上效果图:

 

实现思路:

怎么确保你点开的就是那一项,而不是其它的兄弟节点,被每一项的唯一性困扰了一下,思路在H5上一时间没转过来。

给每一项绑定唯一的值,点击此项时,获取的值为a,则展开值为a的这一项,关闭所有非a值的其它项。

源码实现:

Wxml

<view class='record'>

<text>打卡记录</text>

<view wx:for='{{list}}' wx:key='this' wx:for-item='item' wx:for-index='index'>

<view class='hr'></view>

<view class='detailTitle' catchtap='getDateRecord' data-index='{{index}}' data-date='{{item.date}}'>

<view class='date'>

{{item.date}}

</view>

<image wx:if="{{!item.show}}" class='img' src='../../img/rcircle.png' mode='widthFix'></image>

<image wx:else class='img' src='../../img/dcircle.png' mode='widthFix'></image>

</view>

<view wx:if="{{item.show}}" class='detailContent' wx:for='{{item.recordList}}' wx:for-item='recordItem'>

<view>{{recordItem.time}}</view>

<view>{{recordItem.type}}</view>

</view>

</view>

Wxss

样式简单就不贴啦~恕我直言,在座的各位都是大佬,肯定比我厉害。

重头戏来了,下面是js实现!!!

Js

getDateRecord:function(e){

var that = this;

var index = e.currentTarget.dataset.index;

var date = e.currentTarget.dataset.date;

var list = that.data.list;

list[index].recordList = that.getDetailData(date, getApp().globalData.userInfo.openid);

//console.log(list[index].recordList) 

//list中其它的数据都是从服务器中取得,记得返回数据的list中加一个show字段,默认为false,即默认所有子项不展开

list[index].show = !list[index].show;

this.packUp(list, index);

that.setData({list});

},

//让所有的展开项,都变为收起

packUp(data, index) {

for (var i = 0, len = data.length; i < len; i++) {

if(index!=i){

data[i].show = false;

}

}

},

//具体的业务实现,从服务器中取得的数据

getDetailData:function(date,openid){

var that = this;

var result=[];

wx.request({

url: getApp().globalData.address + 'getDateRecord',

data: {

date:date,

openid:openid

},

header: {

'content-type': 'application/x-www-form-urlencoded' // 默认值

},

method: "POST",

success: function (res) {

result = res.data.recordList

},

fail: function (err) {

wx.showToast({

icon: "none",

title: '服务器异常,清稍候再试'

})

},

})

},

     就是这样啦,很简单,提供一种解决方案吧,我在这做个抛砖引玉的作用,希望能得到各位大佬的改进意见或者更好的解决方案。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
微信小程序之文本之间的空格的写法发布时间:2022-07-18
下一篇:
微信小程序版本管理详解发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap