微信小程序之多列表的顯示和隱藏功能【附源碼】
今天在項(xiàng)目碰到一個(gè)問(wèn)題,之前在項(xiàng)目首頁(yè)實(shí)現(xiàn)單列表的顯示和隱藏,通過(guò)wx:if判斷就可實(shí)現(xiàn),現(xiàn)在要實(shí)現(xiàn)多列表的單項(xiàng)顯示和隱藏功能應(yīng)該如何實(shí)現(xiàn)呢?如果還用wx:if實(shí)現(xiàn)的話會(huì)出現(xiàn)點(diǎn)擊一個(gè)列表項(xiàng),多個(gè)列表同時(shí)顯示和隱藏,明顯不適合功能需求,然后簡(jiǎn)單地查了資料也沒(méi)發(fā)現(xiàn)有類似的功能,最后思考一番后,慢慢地理清了思路...
效果圖:
實(shí)現(xiàn)思路:
- 實(shí)現(xiàn)單個(gè)列表的顯示和隱藏應(yīng)該使用唯一元素讓程序知道你應(yīng)該顯示和隱藏哪個(gè)列表項(xiàng),可以用數(shù)據(jù)的id;
- css中定義一個(gè)hidden{display:none}控制顯示和隱藏,然后通過(guò)三元運(yùn)算符來(lái)判斷;
- wxml定義一個(gè)點(diǎn)擊事件來(lái)動(dòng)態(tài)修改這個(gè)列表項(xiàng)的變量值。
功能實(shí)現(xiàn):
好了,思路有了,就開始按照思路來(lái)用代碼驗(yàn)證。果不其然,使用代碼實(shí)現(xiàn)之后,發(fā)現(xiàn)自己的思路還是沒(méi)錯(cuò)的。此功能點(diǎn)也可以應(yīng)用到其它類似的列表的顯示和隱藏中。
示例代碼:
<!--pages/myOrder/myOrder.wxml--> <view class='container'> <!-- 訂單列表 --> <block wx:for-items="{{carInfoData}}"> <view class='card b-shadow' bindtap='toggleBtn' id="{{item.id}}"> <view class='nearCard-fl'> <image src='{{item.imgurl}}'></image> </view> <view class='nearCard-fr'> <view>日期: <text class='c-green'>{{item.useDate}}</text> </view> <view>車型: <text class='c-green'>{{item.cx}}</text> </view> <view>時(shí)長(zhǎng): <text class='c-green'>{{item.time}}</text> </view> <view>費(fèi)用: <text class='c-green'>{{item.feiyong}}</text> </view> </view> <view class='down clearfix {{uhide==item.id?"":"hidden"}}'> <view class='ml30'>啟用時(shí)間:2018.01.01 11:33</view> <view class='ml30'>結(jié)束時(shí)間:2018.01.01 11:33</view> <view class='ml30'>租賃地區(qū):舟山市桃花島景區(qū)海灣浪琴</view> <view class='feedBack'>意見反饋</view> </view> </view> </block> </view> // pages/myOrder/myOrder.js Page({ /** * 頁(yè)面的初始數(shù)據(jù) */ data: { uhide: 0 }, /** * 生命周期函數(shù)--監(jiān)聽頁(yè)面加載 */ onLoad: function (options) { var that = this; var data = { "datas": [ { "id": 1, "imgurl": "../../images/car.png", "useDate": "2017-12-22", "cx": "奇瑞EQ1", "time": "1小時(shí)", "feiyong": "20元" }, { "id": 2, "imgurl": "../../images/car.png", "useDate": "2017-12-22", "cx": "奇瑞EQ1", "time": "1小時(shí)", "feiyong": "20元" }, { "id": 3, "imgurl": "../../images/car.png", "useDate": "2017-12-22", "cx": "奇瑞EQ1", "time": "1小時(shí)", "feiyong": "20元" }, { "id": 4, "imgurl": "../../images/car.png", "useDate": "2017-12-22", "cx": "奇瑞EQ1", "time": "1小時(shí)", "feiyong": "20元" } ] }; //console.log(data.datas); //設(shè)置車輛展示信息 that.setData({ carInfoData: data.datas }) }, //點(diǎn)擊切換隱藏和顯示 toggleBtn: function (event) { var that = this; var toggleBtnVal = that.data.uhide; var itemId = event.currentTarget.id; if (toggleBtnVal == itemId) { that.setData({ uhide: 0 }) } else { that.setData({ uhide: itemId }) } } })
GitHub源碼地址:小程序顯示和隱藏
總結(jié)
以上所述是小編給大家介紹的微信小程序之多列表的顯示和隱藏功能【附源碼】,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
js實(shí)現(xiàn)鼠標(biāo)移動(dòng)到圖片產(chǎn)生遮罩效果
這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)鼠標(biāo)移動(dòng)到圖片產(chǎn)生遮罩效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-10-10JS模擬實(shí)現(xiàn)哈希表及應(yīng)用詳解
這篇文章主要介紹了JS模擬實(shí)現(xiàn)哈希表及應(yīng)用,結(jié)合實(shí)例形式分析了javascript模擬實(shí)現(xiàn)哈希表的步驟、相關(guān)操作技巧與使用方法,需要的朋友可以參考下2018-05-05使用formatter函數(shù)設(shè)置Echarts的tooltip中動(dòng)態(tài)單位
這篇文章主要為大家介紹了使用formatter函數(shù)設(shè)置Echarts的tooltip中動(dòng)態(tài)單位實(shí)現(xiàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07