位置: 编程技术 - 正文

基于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基础知识梳理)

  • 所得税结转本年利润
  • 小规模纳税人转让不动产增值税
  • 进项税转出包括什么
  • 预缴增值税计算公式方法
  • 用微信和支付宝支付 会计如何做账
  • 固定模板的东西叫什么
  • 售后回购确认为租赁的
  • 税款的汇兑损益如何做账
  • 税费四舍五入的怎么做帐
  • 收到就业补贴财务如何做账
  • 综合利用资源减计收入
  • 银行回单卡是什么卡
  • 房地产会计预收账款明细科目
  • 建筑企业异地预交税款如何处理
  • 煤炭企业会计核算办法
  • 搬运费计入
  • 折扣折让红字发票内容
  • 快递增值税税率
  • 小规模企业所得税标准
  • 企事业承包承租经营所得税率是多少
  • 高新技术企业退税比例是多少
  • 汽车销售公司买车后续维修保养
  • 凭证制单和审核可以是一个人吗
  • 个人给公司付款怎么做分录
  • 支付给外单位的押金是其他应收款吗
  • 餐饮业现金流
  • 减免的城建税如何申报
  • 如何冲减其他应付款又不影响银行存款
  • 全部投资内部收益率
  • 专项资金支出时能直接转出吗
  • 如何在苹果电脑上删除软件
  • php 递归函数
  • type3插件
  • 公司缴纳的契税怎么查询
  • 各级税务机关应当遵循依法
  • 专利年费的滞纳金
  • 在清算土地增值税销项时,允许扣除的土地价款包括哪些?
  • 金蝶专业版怎么用
  • php页面刷新代码
  • 把ChatGPT接入我的个人网站
  • vue路由使用方法
  • 我的十年怎么写
  • 【深度学习】详解 MoCo
  • 表关联查询语句
  • 营业额是营业收入总额吗
  • 入库税款异常怎么处理
  • 判别是否属于劳务报酬
  • 采购入库单怎么生成
  • 总公司接活让分公司去做可以吗
  • 增值税销项税红字应如何报税
  • 固定资产折旧方法和计算公式
  • 实收资本不能动吗
  • 房地产老项目简易计税方法
  • 已核准未登记名称我可以注册吗
  • 公司购买汽车如何抵成本
  • 房租季度付款是几个月
  • 营改增租金收入税率
  • 企业持有住房税费
  • 注册资本一般为多少
  • 大修和维修怎样定义
  • 印花税计提金额怎么算
  • msde安装1秒不动了
  • sqlserver数据库和mysql区别
  • win10 rs5
  • centos8拨号上网
  • 影响电脑速度的因素
  • javascriptz
  • OpenGL ES2.0-iPhone开发-part1
  • jquery从入门到精通
  • js数组洗牌
  • 批处理文件如何运行
  • javascript 触发事件列表 比较不错
  • unity c++ dll
  • python发送信息到微信
  • 经营所得个人所得税税率表
  • 税务退休工资
  • 工商注册和税务登记费用
  • 山东农村土地补贴每亩多少
  • 应纳税所得额怎么求公式
  • 网上如何申请
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设