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
jQuery 隔行换色 支持键盘上下键,按Enter选定值
Aug 02 Javascript
为超链接加上disabled后的故事
Dec 10 Javascript
Extjs中ComboBox加载并赋初值的实现方法
Mar 22 Javascript
Web跨浏览器进程通信(Web跨域)
Apr 17 Javascript
js实现定时进度条完成后切换图片
Jan 04 Javascript
如何快速上手Vuex
Feb 14 Javascript
jQuery EasyUI之验证框validatebox实例详解
Apr 10 jQuery
分享Bootstrap简单表格、表单、登录页面
Aug 04 Javascript
React如何避免重渲染
Apr 10 Javascript
jQuery选择器之基本选择器用法实例分析
Feb 19 jQuery
javascript实现超好看的3D烟花特效
Jan 01 Javascript
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版
2012/04/20 PHP
解析PHP中$_FILES的使用以及注意事项
2013/07/05 PHP
JavaScript 在各个浏览器中执行的耐性
2009/04/06 Javascript
JQuery 操作select标签实现代码
2010/05/14 Javascript
JavaScript动态调整TextArea高度的代码
2010/12/28 Javascript
jquery $.ajax相关用法分享
2012/03/16 Javascript
javascript页面动态显示时间变化示例代码
2013/12/18 Javascript
Jquery实现自定义弹窗示例
2014/03/12 Javascript
js获取页面传来参数的方法
2014/09/06 Javascript
分享两款带遮罩的jQuery弹出框
2015/12/30 Javascript
React中ES5与ES6写法的区别总结
2017/04/21 Javascript
JS实现上传图片的三种方法并实现预览图片功能
2017/07/14 Javascript
VUE-cli3使用 svg-sprite-loader
2018/10/20 Javascript
js中call()和apply()改变指针问题的讲解
2019/01/17 Javascript
nodejs通过钉钉群机器人推送消息的实现代码
2019/05/05 NodeJs
angularjs1.X 重构controller 的方法小结
2019/08/15 Javascript
使用Vue Composition API写出清晰、可扩展的表单实现
2020/06/10 Javascript
[06:42]DOTA2每周TOP10 精彩击杀集锦vol.1
2014/06/25 DOTA
[49:07]VGJ.T vs Optic Supermajor小组赛D组 BO3 第二场 6.3
2018/06/04 DOTA
Python list操作用法总结
2015/11/10 Python
Python简单定义与使用字典dict的方法示例
2017/07/25 Python
python3学习笔记之多进程分布式小例子
2018/02/13 Python
使用TensorFlow实现简单线性回归模型
2019/07/19 Python
如何爬取通过ajax加载数据的网站
2019/08/15 Python
python实现控制台输出颜色
2021/03/02 Python
HTML5 Canvas+JS控制电脑或手机上的摄像头实例
2014/05/03 HTML / CSS
华纳兄弟工作室的官方授权商店:WB Shop
2018/11/30 全球购物
女方回门宴答谢词
2014/01/14 职场文书
会计自我鉴定
2014/02/04 职场文书
教师节促销方案
2014/03/22 职场文书
不忘国耻振兴中华演讲稿
2014/05/14 职场文书
老兵退伍标语
2014/10/07 职场文书
酒店人事专员岗位职责
2015/04/07 职场文书
国庆节新闻稿
2015/07/17 职场文书
2015教师个人德育工作总结
2015/07/22 职场文书
团结友爱主题班会
2015/08/13 职场文书