js模拟百度模糊搜索的实例
程序员文章站
2022-05-26 08:13:40
废话不多说,直接上代码
废话不多说,直接上代码
<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title>document</title> <style> *{ margin:0; padding:0; } input{ display:block; list-style:none; } html,body{ color:#000; font-size:14px; font-family:'微软雅黑'; } .box{ margin:50px auto; width:300px; } .box input{ padding:0 10px; width:278px; height:30px; border:1px solid green; } .box ul{ display:none; border:1px solid green; border-top:none; } .box ul li{ list-style:none; padding:0 10px; height:30px; line-height:30px; cursor:pointer; } .box ul li:hover{ background:#eee; } </style> </head> <body> <div class='box'> <input type="text" id='searchinp'/> <ul id='searchbox'> <li>1111</li> <li>2222</li> <li>3333</li> <li>4444</li> </ul> </div> <script src='jquery.min.js'></script> <script> var searchmodule = (function(){ var $searchinp = $('#searchinp'), $searchbox = $('#searchbox'); //向百度的服务器发送jsonp请求,把数据绑定到容器当中 function bindhtml(){ var searchkey = $searchinp.val(); function callback(data){ data = data['g']; var str = ''; $.each(data,function(index,item){ if(index<=3){ str += '<li>'+item+'</li>' } }) $searchbox.html(str).stop().slidedown(300); } $.ajax({ url:"https://sp0.baidu.com/5a1fazu8aa54nxgko9wtanf6hhy/su?wd="+searchkey, datatype:"jsonp", jsonp:'cb', success:callback }) } //事件绑定和模块的入口 function init(){ //文本框获取焦点或者输入内容,判断当前文本框中是否有内容,有内容绑定数据,没有内容隐藏展示框 $searchinp.on("focus keyup",function(){ var val = $(this).val(); if(val.length>0){ bindhtml(); return; } $searchbox.stop().slideup(300); }).on('blur',function(){ window.settimeout(function(){ $searchbox.stop().slideup(300); },3000) }) //给展示框中的li绑定方法 $searchbox.on('click',function(e){ var tar = e.target, tartag = tar.tagname.touppercase(), $tar = $(tar); if(tartag==="li"){ $searchinp.val($tar.html()); $(this).stop().slideup(300); } }) } return { init:init } })() searchmodule.init(); </script> </body> </html>
以上这篇js模拟百度模糊搜索的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
下一篇: 微信小程序-滚动消息通知的实例代码