位置: 编程技术 - 正文

基于jquery实现智能提示控件intellSeach.js(jquery的实现原理)

发布时间:2024-02-27

推荐整理分享基于jquery实现智能提示控件intellSeach.js(jquery的实现原理),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:jquery权威指南,jquery的实现原理,jquery教程实例,jquery知识,使用jquery实现的项目,jquery教程实例,jquery教程实例,jquery知识,内容如对您有帮助,希望把文章链接给更多的朋友!

一、需求

  我们经常会遇到【站内搜索】的需求,为了提高用户体验,我们希望能做到像百度那样的即时智能提示。例如:某公司人事管理系统,想搜索李XX,只要输入“李”,系统自然会提示一些姓李的员工,这样方便用户使用。说白了,就是用户边输入,系统会提示相关的结果;或者,当用户点击搜索框时,就推荐一些内容,如、百度都会提示今天的主要新闻或搜索量大的内容。

  jquery 已经有一个这样的插件了,叫 autocomplete, 但我觉得不好用。关于autocomplete的介绍也很多,有兴趣的朋友可以去试试。

  看标题就知道,这里只是分享一个插件,不会讨论后台搜索的相关算法和过程,也就是说,后台返回特定格式的数据,控件负责渲染结果呈现。ok,先看一下效果图:

  

样式与控件无关,只需要一个 input text 就可以了。

二、参数说明

  控件以json格式作为传输格式。参数比较多,大部分都有默认值(具体看源码),有些可能不常用,保持默认即可。如下:

  url: 请求地址。如:Handler.ashx, 后台获取数据的地址

property: 要显示的json对象的属性。如果我们直接返回["tom","tom cat","tom2"] 这样的形式,那么该属性可以不用设置;但有时候我们会返回[{"Name":"tom","ID":""},{"Name":"tom cat","ID":""},{"Name":"tom2","ID":""}] 这样的形式,显示的是Name,那么设置该属性为"Name"即可。至于我们想在点击的时候获得点击的项的ID,通过点击事件即可。

itemNumber: 显示的项数目。

isEmptyRequest: focus时,空白是否发起请求。就像前面说的,如果点击搜索框时(此时没有内容),想要推荐一些内容,设置该属性为true,即会发起请求。

defaultValue: 默认值。通常会是:“请输入关键词...” 这类的提示。

width: 下拉列表宽度。

基于jquery实现智能提示控件intellSeach.js(jquery的实现原理)

  aligner: 要对齐的元素。

maxHeight: 最大高度。如果设置该高度,超过时就会出现滚动条。

ajax:{   timeout: 超时时间 cache: 是否缓存 },

  event:{    setData: 发送请求前触发。用于设置参数 itemClick: 点击项触发 enterKeydown: 按下enter键触发 beforeRender: 所有项呈现前触发 endRender: 所有项呈现后触发 itemBeforeRender: 项呈现前触发 itemAfterRender: 项呈现后触发 beforeSend: 发送请求前触发。用户设置请求头部参数等,相当于jquery ajax 的 beforeSend。 }

  event 里的方法都会在适当的时候触发,需要注意的是,所有方法都接收一个参数,该参数是一个对象,有4个属性,某些情况如果没有该属性的,则为空。包括如下属性:

  jthis: input 的 jQuery 对象。

  jItem: 项的 jQuery 对象。

data: 返回的 json 字符串。如果在前台需要对返回 json 再进行处理,那么可以通过 data 属性获得,处理完成后,需要将 json 字符串 return。

  event: 事件对象,如按下 enter 时的事件对象。

三、例子

  使用例子:

四、总结  

  如果你还有自己的逻辑需要处理,也支持链式调用,大可以这样写 $("#search").intellSearch({参数...}).focus(function(){你的处理...});

  分享该插件希望能帮助到有需要的朋友,主要用于学习。由于是v1.0,可能还有一些bug,有发现的朋友也可以告诉我,我会及时修正。  

附源代码

js代码

样式

标签: jquery的实现原理

本文链接地址:https://www.jiuchutong.com/biancheng/384012.html 转载请保留说明!

上一篇:基于jquery实现简单的分页控件(如何用jquery)

下一篇:jquery基础知识第一讲之认识jquery(jquery基础知识梳理)

  • 免税进账转出怎么填表
  • 购进货物用于建造厂房可以抵扣增值税吗
  • 珠宝首饰可以开发票吗
  • 所得税费用期末应转入
  • 土地增值税计入固定资产清理
  • 工资扣水电费怎么算
  • 电子申报率较差的原因
  • 运输过程中的货损责任
  • 存货盘亏进项税额转出会计分录
  • 银行收到对方付款的会计分录
  • 按工人工资比例结转制造费用的科目
  • 存出的保证金
  • 分公司可以合伙吗
  • 向消费者支付佣金怎么算
  • 启用新账簿
  • 外购的货物用于集体福利是销售吗
  • 营改增后停车费税率
  • 烟草消费税计算方法
  • 2017年7月1日开始实施的税法新规
  • 发票与报税记录不一致
  • 可以通过哪些渠道获得就业信息
  • 取得抵债房产的涉税风险,你清楚吗?
  • 定期定额户需要自己申报吗
  • 合作社开具的免税普票计算抵扣
  • 承兑汇票贴单怎么贴
  • 注册资本转让税率
  • 研发费用费用化金额和资本化金额有什么区别
  • 生产型企业原材料出入库处理
  • 企业购入土地如何处理
  • 自产房产部分出租后的房产税怎么交?
  • 企业所得税按月或者按季预缴
  • linux桌面不见了
  • xampp如何运行php项目
  • 分公司 股东
  • 被辞退有补助金吗
  • 今天春节是什么生肖
  • node实战
  • 员工出差过程中意外死亡算工伤吗
  • 个人所得税申报流程图
  • 企业注销时还有进项税
  • phpcms rce
  • 帝国cms建站教程
  • 工资计提啥意思
  • SqlServer 2005 T-SQL Query 学习笔记(3)
  • 基础电信是什么
  • sql 临时数据
  • 固定资产清理的金额怎么算
  • 内账会计的岗位职责
  • 暂估入账后续处理
  • 进项税额和销项税额有什么区别
  • 开发间接费用怎么计算
  • 资产处置费用是资产类科目吗
  • 车辆购置税计入税金及附加吗
  • 上年未结转金额是什么意思
  • 进口货物例题
  • 企业接受捐赠的固定资产,应增加营业外收入
  • 用工资冲借款报税可以吗
  • 财务费用中的利息费用指什么
  • 总分类账的依据
  • 私营公司固定资产怎么查
  • 如何调优产业结构
  • mysql命令行导出表结构
  • sql纵向排列改为横向
  • liunx系统常用命令
  • ubuntu安装教程14.04
  • win8怎么停止自动更新
  • 电脑显示器无信号键盘灯不亮
  • c++全局变量赋值
  • 菜单下一章
  • 微信和qq时间格式不一样
  • 不是批处理文件
  • 天气球球怎么下载
  • jquery加载图片
  • Python3.6正式版新特性预览
  • python里面颜色
  • java多线程编程实战指南
  • 天津国税电话
  • 互联网新闻信息服务提供者为用户提供互联网新闻
  • 营商环境法治保障服务
  • 2021年福建省灵活就业人员养老保险缴费标准
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号