位置: 编程技术 - 正文

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

编辑:rootadmin

推荐整理分享基于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基础知识梳理)

  • 购买免税产品的app
  • 什么叫征期抄税?
  • 销售软件税目
  • 总账套打
  • 工会活动奖励现金怎么入账
  • 申请纳税申报怎么申报
  • 劳务派遣差额计税公式
  • 缴纳个人所得税扣除项目
  • 怎么处理未抵扣增值税形成的留抵税额?
  • 实收资本转出怎么做账
  • 其他应付款在现金流量表中应该填哪里
  • 金税盘维护费减免政策代码
  • 出租屋物品损坏怎么赔偿
  • 售后回租是否确认收入
  • 食堂购买食材明细表
  • 购买的车位应如果要进行税务处理需注意什么?
  • 农村承包土地能卖土吗
  • 分公司如何缴纳公积金
  • 淘宝的电子发票怎么看
  • 一个十图
  • 小规模纳税人 行业
  • 股东以个人名义签订租赁合同
  • 工会经费什么时候返还给企业
  • 六险一金指的是哪六险哪一金
  • 工商年报纳税总额怎么填写才正确
  • 应交税费留底增值税
  • 个税退手续费要多久到账
  • 经营租赁是什么意思
  • 增值税减免是当月报下月冲吗
  • 在windows7操作具有什么特点
  • 电脑每次开机都要磁盘检查是什么原因
  • 进销存单据
  • php string
  • 期末坏账准备的计算
  • 已提折旧固定资产评估增值的会计处理是企业会计准则
  • PHP:pg_connection_busy()的用法_PostgreSQL函数
  • php替换字符串中的某个字符
  • 直线法计提折旧每年都一样吗
  • 出差补贴怎么记账
  • 不能进行加计扣除的研发费用有哪些
  • 公司注销未分配利润会计分录
  • 应收账款应付账款属于什么科目
  • 数据挖掘 实战
  • centos安装软件教程
  • php数学
  • 车保险费中的车险是什么
  • 什么是合伙企业?它的特点有哪些?
  • 网站缩略图生成
  • python怎么用
  • 交通费中的高速费指什么
  • 股权转让主要交什么税费
  • 个体户需要实缴吗
  • 防伪税控技术维护费普通发票怎么申报
  • 员工备用金会计分录
  • 多交的应交税费资产负债表怎么填
  • 增值税期末留抵退税什么意思
  • 固定资产小汽车折旧怎么计提
  • 过程中必须有哪两种状态
  • 商业承兑汇票结算会计分录
  • 发票报销可以跨月报销吗
  • 其他应付款坏账处理说明
  • 利得与损失的四种类型
  • 费用分摊的分录
  • 安装win8.1系统步骤
  • windows10点击任务栏没有反应
  • centos清理缓存
  • linux svn命令使用详解
  • 命令窗口的作用
  • node .js
  • android更改应用名称
  • 常用的批处理命令
  • javascript原生写法
  • Nodejs实现多人同时在线移动鼠标的小游戏分享
  • css checked
  • Python通过DOM和SAX方式解析XML的应用实例分享
  • unity struct
  • jQuery插件封装时如要实现链式编程,需要
  • 增值税纳税申报表附列资料(一)
  • 土地增值税税率表
  • 中山市国家税务总局阜沙分局局长杨兴华
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设