js模拟百度模糊搜索的实例


Posted in Javascript onAugust 04, 2017

废话不多说,直接上代码

<!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模拟百度模糊搜索的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
国外Lightbox v2.03.3 最新版 下载
Oct 17 Javascript
DD_belatedPNG,IE6下PNG透明解决方案(国外)
Dec 06 Javascript
JQuery给元素添加/删除节点比如select
Apr 02 Javascript
JavaScript将取代AppleScript?
Sep 18 Javascript
JS中字符串trim()使用示例
May 26 Javascript
详解JavaScript对象和数组
Dec 03 Javascript
D3.js实现柱状图的方法详解
Sep 21 Javascript
详解网站中图片日常使用以及优化手法
Jan 09 Javascript
jQuery dateRangePicker插件使用方法详解
Jul 28 jQuery
写gulp遇到的ES6问题详解
Dec 03 Javascript
微信小程序getLocation 需要在app.json中声明permission字段
Mar 03 Javascript
jQuery实现本地存储
Dec 22 jQuery
JavaScript模拟文件拖选框样式v1.0的实例
Aug 04 #Javascript
addeventlistener监听scroll跟touch(实例讲解)
Aug 04 #Javascript
原生js jquery ajax请求以及jsonp的调用方法
Aug 04 #jQuery
Angular2环境搭建具体操作步骤(推荐)
Aug 04 #Javascript
用vue的双向绑定简单实现一个todo-list的示例代码
Aug 03 #Javascript
JavaScript中正则表达式判断匹配规则及常用方法
Aug 03 #Javascript
vue 2.0封装model组件的方法
Aug 03 #Javascript
You might like
PHP生成迅雷、快车、旋风等软件的下载链接代码实例
2014/05/12 PHP
PHP+jQuery 注册模块开发详解
2014/10/14 PHP
PHP会话操作之cookie用法分析
2016/09/28 PHP
YUI 读码日记之 YAHOO.lang.is*
2008/03/22 Javascript
JS维吉尼亚密码算法实现代码
2010/11/09 Javascript
json数据与字符串的相互转化示例
2013/09/18 Javascript
仿百度的关键词匹配搜索示例
2013/09/25 Javascript
jquery判断浏览器后退时候弹出消息的方法
2014/08/11 Javascript
JavaScript设计模式之适配器模式介绍
2014/12/28 Javascript
js实现ifram取父窗口URL地址的方法
2015/02/09 Javascript
JavaScript设置body高度为浏览器高度的方法
2015/02/09 Javascript
animate 实现滑动切换效果【实例代码】
2016/05/05 Javascript
jquery ajax后台返回list,前台用jquery遍历list的实现
2016/10/30 Javascript
jQuery实现表格与ckeckbox的全选与单选功能
2016/11/24 Javascript
Angular中的interceptors拦截器
2017/06/25 Javascript
vue.js使用v-model指令实现的数据双向绑定功能示例
2018/05/22 Javascript
详解Vue项目中实现锚点定位
2019/04/24 Javascript
使用python 获取进程pid号的方法
2014/03/10 Python
python字符类型的一些方法小结
2016/05/16 Python
Numpy中转置transpose、T和swapaxes的实例讲解
2018/04/17 Python
python 将md5转为16字节的方法
2018/05/29 Python
selenium+headless chrome爬虫的实现示例
2021/01/08 Python
如何用Python提取10000份log中的产品信息
2021/01/14 Python
英国领先的餐饮折扣俱乐部:Gourmet Society
2020/07/26 全球购物
飞利信loadrunner和软件测试笔试题
2012/09/22 面试题
介绍下java.util.Arrays类
2012/10/16 面试题
在DELPHI中调用存储过程和使用内嵌SQL哪种方式更好
2016/11/22 面试题
孝老爱亲模范事迹
2014/01/24 职场文书
高中国旗下的演讲稿
2014/08/28 职场文书
网上祭先烈心得体会
2014/09/01 职场文书
企业法人授权委托书范本
2014/09/23 职场文书
幼儿园工作总结2015
2015/04/01 职场文书
介绍信格式样本
2015/05/05 职场文书
小学庆六一主持词
2015/06/30 职场文书
2016廉洁从业学习心得体会
2016/01/19 职场文书
python中tkinter复选框使用操作
2021/11/11 Python