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

 更新时间:2017年08月04日 08:09:20   投稿:jingxian  
下面小编就为大家带来一篇js模拟百度模糊搜索的实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

废话不多说,直接上代码

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

相关文章

  • avascript中的自执行匿名函数应用示例

    avascript中的自执行匿名函数应用示例

    javascript中的自执行匿名函数可以用它创建命名空间,只要把自己所有的代码都写在这个特殊的函数包装内,那么外部就不能访问,除非你允许
    2014-09-09
  • 微信页面弹出键盘后iframe内容变空白的解决方案

    微信页面弹出键盘后iframe内容变空白的解决方案

    当键盘弹出后,页脚也被顶起来;而当搜索完(要刷新整体页面),键盘缩回后,iframe里 键盘当住的地方变成白色。怎么解决这个问题呢?下面脚本之家小编给大家分享微信页面弹出键盘后iframe内容变空白的解决方案,一起看看吧
    2017-09-09
  • javascript设计模式之module(模块)模式

    javascript设计模式之module(模块)模式

    这篇文章主要为大家详细介绍了javascript设计模式之module(模块)模式 ,感兴趣的小伙伴们可以参考一下
    2016-08-08
  • H5如何实现唤起APP及调试bug解决

    H5如何实现唤起APP及调试bug解决

    这篇文章主要为大家介绍了H5如何实现唤起APP及调试bug解决,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-05-05
  • JavaScript中立即执行函数实例详解

    JavaScript中立即执行函数实例详解

    javascript和其他编程语言相比比较随意,所以javascript代码中充满各种奇葩的写法,有时雾里看花,当然,能理解各型各色的写法也是对javascript语言特性更进一步的深入理解。这篇文章主要给大家介绍了关于JavaScript中立即执行函数的相关资料,需要的朋友可以参考下。
    2017-11-11
  • JavaScript Date对象应用实例分享

    JavaScript Date对象应用实例分享

    这篇文章主要分享了JavaScript Date对象应用实例,获取日期时间,倒计时功能实现,限时抢购活动,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-10-10
  • JS实现图文并茂的tab选项卡效果示例【附demo源码下载】

    JS实现图文并茂的tab选项卡效果示例【附demo源码下载】

    这篇文章主要介绍了JS实现图文并茂的tab选项卡效果,涉及javascript响应鼠标事件动态修改页面元素属性的相关操作技巧,并附带demo源码供读者下载参考,需要的朋友可以参考下
    2016-09-09
  • 详解Webpack + ES6 最新环境搭建与配置

    详解Webpack + ES6 最新环境搭建与配置

    这篇文章主要介绍了详解Webpack + ES6 最新环境搭建与配置,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-06-06
  • javascript面向对象程序设计(一)

    javascript面向对象程序设计(一)

    这篇文章主要介绍了javascript面向对象程序设计,分享给大家一段代码,注释里讲解的非常详细,有助于我们理解面向对象,这里推荐给大家。
    2015-01-01
  • js实现精确到毫秒的倒计时效果

    js实现精确到毫秒的倒计时效果

    这篇文章主要为大家详细介绍了js实现精确到毫秒的倒计时效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-08-08

最新评论