微信小程序实现搜索历史功能


Posted in Javascript onMarch 26, 2020

结合了微信给的资料,马马虎虎摸索出了一些东西,下面说一下微信小程里序搜索历史功能的实现,下图是实现效果。

微信小程序实现搜索历史功能

首先,定义历史记录的显示风格和方式,在下用的是列表模式,没有使用什么比较酷炫的套路。

<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>

其次是“清除历史记录”按钮,个人建议在没有搜索历史的时候不显示按钮,因为在下有些强迫症

<view wx:if="{{sercherStorage.length!==0}}" style="text-align:center;" bindtap="clearSearchStorage">
 <view class="history-span">清除历史记录</view>
</view>

(微信小程序的数据交互还是蛮喜欢的)

这里是列表的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、参数声明

data: {
 sercherStorage: [],
 StorageFlag: false //显示搜索记录标志位
 }

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、点击搜索添加搜索内容进历史记录

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、在进入搜索页面时,检索出缓存中的搜索历史。(适用于搜索页面是单独页面的业务)

onLoad: function (options) {
 this.openLocationsercher();
 }

5、清空历史记录,只需在上面声明搜索按钮时把”bindtap”属性值设置成写好的JS方法名即可。

更多搜索功能实现的精彩文章,请点击专题:javascript搜索功能汇总 进行学习

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JS鼠标事件大全 推荐收藏
Nov 01 Javascript
jquery库或JS文件在eclipse下报错问题解决方法
Apr 17 Javascript
兼容各大浏览器的JavaScript阻止事件冒泡代码
Jul 09 Javascript
学习JavaScript设计模式之享元模式
Jan 18 Javascript
AngularJS基础 ng-keyup 指令简单示例
Aug 02 Javascript
深究AngularJS中$sce的使用
Jun 12 Javascript
微信小程序 转发功能的实现
Aug 04 Javascript
jQuery实现的下雪动画效果示例【附源码下载】
Feb 02 jQuery
vue axios 表单提交上传图片的实例
Mar 16 Javascript
JS中判断字符串存在和非空的方法
Sep 12 Javascript
聊聊Vue 中 title 的动态修改问题
Jun 11 Javascript
微信小程序scroll-view锚点链接滚动跳转功能
Dec 12 Javascript
微信小程序云开发修改云数据库中的数据方法
May 18 #Javascript
小程序云开发教程如何使用云函数实现点赞功能
May 18 #Javascript
微信小程序实现元素渐入渐出动画效果封装方法
May 18 #Javascript
微信小程序收货地址API兼容低版本解决方法
May 18 #Javascript
小程序云开发获取不到数据库记录的解决方法
May 18 #Javascript
小程序云开发之用户注册登录
May 18 #Javascript
小程序云开发实现数据库异步操作同步化
May 18 #Javascript
You might like
PHP在Web开发领域的优势
2006/10/09 PHP
PHP各种异常和错误的拦截方法及发生致命错误时进行报警
2016/01/19 PHP
php基于单例模式封装mysql类完整实例
2016/10/18 PHP
PHP数组对象与Json转换操作实例分析
2019/10/22 PHP
DOM 中的事件处理介绍
2012/01/18 Javascript
简化版手机端照片预览组件
2015/04/13 Javascript
jquery实现从数组移除指定的值
2015/06/24 Javascript
Vue.js中数组变动的检测详解
2016/10/12 Javascript
JS实现列表页面隔行变色效果
2017/03/25 Javascript
基于LayUI实现前端分页功能的方法
2017/07/22 Javascript
简单实现jQuery手风琴效果
2017/08/18 jQuery
ajaxfileupload.js实现上传文件功能
2019/04/19 Javascript
layui使用表格渲染获取行数据的例子
2019/09/13 Javascript
在VUE中实现文件下载并判断状态的方法
2019/11/08 Javascript
vant中的toast层级改变操作
2020/11/04 Javascript
手写Vue2.0 数据劫持的示例
2021/03/04 Vue.js
Python max内置函数详细介绍
2016/11/17 Python
浅谈flask中的before_request与after_request
2018/01/20 Python
目前最全的python的就业方向
2018/06/05 Python
python dataframe常见操作方法:实现取行、列、切片、统计特征值
2018/06/09 Python
python实战串口助手_解决8串口多个发送的问题
2019/06/12 Python
Python使用grequests(gevent+requests)并发发送请求过程解析
2019/09/25 Python
django 装饰器 检测登录状态操作
2020/07/02 Python
html5调用摄像头功能的实现代码
2018/05/07 HTML / CSS
用HTML5制作数字时钟的教程
2015/05/11 HTML / CSS
美国专营婴幼儿用品的购物网站:buybuy BABY
2017/01/01 全球购物
网上快餐厅创业计划书
2014/02/01 职场文书
员工安全生产承诺书
2014/05/22 职场文书
大学生村官考核材料
2014/05/23 职场文书
公司副总经理岗位职责
2014/10/01 职场文书
幼儿园大班毕业评语
2014/12/31 职场文书
2015社区六五普法工作总结
2015/04/21 职场文书
2015年酒店销售部工作总结
2015/07/24 职场文书
解除租赁合同协议书
2016/03/21 职场文书
python文件名批量重命名脚本实例代码
2021/04/22 Python
Node实现搜索框进行模糊查询
2021/06/28 Javascript