微信小程序?qū)崿F(xiàn)搜索歷史功能
結(jié)合了微信給的資料,馬馬虎虎摸索出了一些東西,下面說一下微信小程里序搜索歷史功能的實(shí)現(xiàn),下圖是實(shí)現(xiàn)效果。
首先,定義歷史記錄的顯示風(fēng)格和方式,在下用的是列表模式,沒有使用什么比較酷炫的套路。
<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>
其次是“清除歷史記錄”按鈕,個人建議在沒有搜索歷史的時候不顯示按鈕,因?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、兩個主要的JS方法
//清除緩存歷史 clearSearchStorage: function () { wx.removeStorageSync('searchData') this.setData({ sercherStorage: [], StorageFlag: false, }) }, //打開歷史記錄列表 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)入搜索頁面時,檢索出緩存中的搜索歷史。(適用于搜索頁面是單獨(dú)頁面的業(yè)務(wù))
onLoad: function (options) { this.openLocationsercher(); }
5、清空歷史記錄,只需在上面聲明搜索按鈕時把”bindtap”屬性值設(shè)置成寫好的JS方法名即可。
更多搜索功能實(shí)現(xiàn)的精彩文章,請點(diǎn)擊專題:javascript搜索功能匯總 進(jìn)行學(xué)習(xí)
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
layui 實(shí)現(xiàn)自動選擇radio單選框(checked)的方法
今天小編就為大家分享一篇layui 實(shí)現(xiàn)自動選擇radio單選框(checked)的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-09-09JavaScript獲取GridView中用戶點(diǎn)擊控件的行號,列號
GridView中的某幾列有按鈕,需要獲取用戶當(dāng)前點(diǎn)的按鈕的行號(捎帶的得到列號)2009-04-04JavaScript Rxjs mergeMap 的使用場合
這篇文章主要介紹了JavaScript Rxjs mergeMap 的使用場合,mergeMap 接收一個函數(shù)作為輸入?yún)?shù),這個函數(shù)的輸入?yún)?shù)就是通過 pipe 鏈接 mergeMap 的 Observable 里包含的元素2022-07-07詳解如何用webpack打包一個網(wǎng)站應(yīng)用項(xiàng)目
本篇文章主要介紹了如何用webpack打包一個網(wǎng)站應(yīng)用,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-07-07JavaScript實(shí)現(xiàn)多文件拖動上傳功能
這篇文章主要為大家詳細(xì)介紹了如何使用JavaScript實(shí)現(xiàn)多文件拖動上傳功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-04-04網(wǎng)頁前臺通過js非法字符過濾代碼(罵人的話等等)
項(xiàng)目中如果需要過濾非法字符(你不想用戶輸入的任何字符)的話在前臺可以使用js過濾,同樣可以提高用戶體驗(yàn),以前都是后臺過濾,這樣雙重過濾用戶體驗(yàn)更好。2010-05-05