谷歌asp连接mysql_ASP实现类似谷歌的输入提示

我曾经自己试着写过 仿google输入框输入提示功能,效果还算勉强可以,和你分享一下经验。

准备条件:

一个输入框 input --- 这里称做 input_,

输入框下方一个有边框的 div--- 这里称做 div_frame,

div 里面有的多个 div了先项--- 这里称做 div_li。

效果:

键盘弹起时,显示div_frame,并且把 input_的值为开头的所有数做为子选项显示在 div_frame中。

步骤:(使用 jQuery 是必须的)

1.获取数据源。(页面加载一次,仅查询一次数据库,把查得数据存入内存,以供后面调用)

我这里是加载页面的时候用 ajax 获取数据,用变量 var list = getList(); 存储。 function getList(){$.ajax(...)}

2.为 input_绑定计时器事件。

当 input_获得焦点后,每0.5秒调用一次 function compare(event) /* inupt_的 value和 list进行比较,返回以 input_的值开头的数据 */,当失去焦点后删除这个计时器事件。

//键盘弹起事件绑定

var timeoutId;//全局变量

$("#input_").keyup(function(event){

clearTimeout(timeoutId);//删除计时器事件

timeoutId = setTimeout(function(){

compare(event);

},500);

});

$("#input_").focus(function(){clearTimeout(timeoutId);});

3.根据 function compare(event)返回的数据对 div_frame 中的 div_li 进行排版,调用function itemView(items){}

呃 最主要的思路差不多说完了,剩下的就再简略一点说了。

4.当 input_获得焦点,input_的值为空时,div_frame 显示list的所有数据。

5.加载页面的时候,给body一个单击事件,用于隐藏 div_frame。

6.鼠标移入div_frame 后,去除body 单击事件 $("body").unbind({"click": hideViewMod});

var hideViewMod = function(){

$("#div_frame").hide();

}

7.鼠标移出div_frame 后,再次添加这个单击事件

使用jQuery的 hover()

8.给 div_li 绑定单击事件

9.在 div_frame 外单击后,div_frame被隐藏,要去除 body单击事件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值