微信小程序?qū)崿F(xiàn)搜索歷史功能
結(jié)合了微信給的資料,馬馬虎虎摸索出了一些東西,下面說(shuō)一下微信小程里序搜索歷史功能的實(shí)現(xiàn),下圖是實(shí)現(xiàn)效果。
首先,定義歷史記錄的顯示風(fēng)格和方式,在下用的是列表模式,沒(méi)有使用什么比較酷炫的套路。
<view wx:for="{{sercherStorage}}" wx:key="item.id"> <view class="liclass" style="color:#9E9E9E;border-bottom:0;font-size:26rpx;" id="{{item.id}}" bindtap="tapSercherStorage"> <text style="width:100rpx">{{item.name}}</text> </view> </view>
其次是“清除歷史記錄”按鈕,個(gè)人建議在沒(méi)有搜索歷史的時(shí)候不顯示按鈕,因?yàn)樵谙掠行?qiáng)迫癥
<view wx:if="{{sercherStorage.length!==0}}" style="text-align:center;" bindtap="clearSearchStorage"> <view class="history-span">清除歷史記錄</view> </view>
(微信小程序的數(shù)據(jù)交互還是蠻喜歡的)
這里是列表的CSS樣式
/*搜索歷史列表外部容器樣式*/ .ddclass { position: absolute; width: 100%; margin-top: 10px; left: 0; } /*搜索歷史普通樣式*/ .liclass { font-size: 14px; line-height: 34px; color: #575757; height: 34px; display: block; padding-left: 18px; background-color: #fff; border-bottom: 1px solid #dbdbdb; }
最后是一些JS控制
1、參數(shù)聲明
data: { sercherStorage: [], StorageFlag: false //顯示搜索記錄標(biāo)志位 }
2、兩個(gè)主要的JS方法
//清除緩存歷史 clearSearchStorage: function () { wx.removeStorageSync('searchData') this.setData({ sercherStorage: [], StorageFlag: false, }) }, //打開(kāi)歷史記錄列表 openLocationsercher: function () { this.setData({ sercherStorage: wx.getStorageSync('searchData') || [], StorageFlag: true, listFlag: true, }) }
3、點(diǎn)擊搜索添加搜索內(nèi)容進(jìn)歷史記錄
var self = this; if(self.data.search.length == 0){ return; } //控制搜索歷史 var self = this; if (this.data.search != '') { //將搜索記錄更新到緩存 var searchData = self.data.sercherStorage; searchData.push({ id: searchData.length, name: self.data.search }) wx.setStorageSync('searchData', searchData); self.setData({ StorageFlag: false, }) }
4、在進(jìn)入搜索頁(yè)面時(shí),檢索出緩存中的搜索歷史。(適用于搜索頁(yè)面是單獨(dú)頁(yè)面的業(yè)務(wù))
onLoad: function (options) { this.openLocationsercher(); }
5、清空歷史記錄,只需在上面聲明搜索按鈕時(shí)把”bindtap”屬性值設(shè)置成寫好的JS方法名即可。
更多搜索功能實(shí)現(xiàn)的精彩文章,請(qǐng)點(diǎn)擊專題:javascript搜索功能匯總 進(jìn)行學(xué)習(xí)
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
layui 實(shí)現(xiàn)自動(dòng)選擇radio單選框(checked)的方法
今天小編就為大家分享一篇layui 實(shí)現(xiàn)自動(dòng)選擇radio單選框(checked)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-09-09JavaScript獲取GridView中用戶點(diǎn)擊控件的行號(hào),列號(hào)
GridView中的某幾列有按鈕,需要獲取用戶當(dāng)前點(diǎn)的按鈕的行號(hào)(捎帶的得到列號(hào))2009-04-04await/async無(wú)法捕獲與處理錯(cuò)誤信息的解決方案分享
async await 中添加錯(cuò)誤處理個(gè)人認(rèn)為是有必要的,下面這篇文章主要給大家介紹了關(guān)于await/async無(wú)法捕獲與處理錯(cuò)誤信息的解決方案,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-02-02JavaScript Rxjs mergeMap 的使用場(chǎng)合
這篇文章主要介紹了JavaScript Rxjs mergeMap 的使用場(chǎng)合,mergeMap 接收一個(gè)函數(shù)作為輸入?yún)?shù),這個(gè)函數(shù)的輸入?yún)?shù)就是通過(guò) pipe 鏈接 mergeMap 的 Observable 里包含的元素2022-07-07詳解如何用webpack打包一個(gè)網(wǎng)站應(yīng)用項(xiàng)目
本篇文章主要介紹了如何用webpack打包一個(gè)網(wǎng)站應(yīng)用,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-07-07JavaScript實(shí)現(xiàn)多文件拖動(dòng)上傳功能
這篇文章主要為大家詳細(xì)介紹了如何使用JavaScript實(shí)現(xiàn)多文件拖動(dòng)上傳功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-04-04網(wǎng)頁(yè)前臺(tái)通過(guò)js非法字符過(guò)濾代碼(罵人的話等等)
項(xiàng)目中如果需要過(guò)濾非法字符(你不想用戶輸入的任何字符)的話在前臺(tái)可以使用js過(guò)濾,同樣可以提高用戶體驗(yàn),以前都是后臺(tái)過(guò)濾,這樣雙重過(guò)濾用戶體驗(yàn)更好。2010-05-05