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 相关文章推荐
短信提示使用 特效
Jan 19 Javascript
Flash图片上传组件 swfupload使用指南
Mar 14 Javascript
PassWord输入框代码分享
Jun 07 Javascript
Bootstrap Table使用整理(一)
Jun 09 Javascript
详解React Native顶|底部导航使用小技巧
Sep 14 Javascript
详解ES6 Promise对象then方法链式调用
Oct 20 Javascript
node 标准输入流和输出流代码实例
Sep 19 Javascript
Javascript摸拟自由落体与上抛运动原理与实现方法详解
Apr 08 Javascript
Jquery使用each函数实现遍历及数组处理
Jul 14 jQuery
vue项目中微信登录的实现操作
Sep 08 Javascript
vue 实现element-ui中的加载中状态
Nov 11 Javascript
javascript实现用户必须勾选协议实例讲解
Mar 24 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中获取内网用户MAC地址(WINDOWS/linux)的实现代码
2011/08/11 PHP
PHP中__autoload和Smarty冲突的简单解决方法
2016/04/08 PHP
php的debug相关函数用法示例
2016/07/11 PHP
PHP实现权限管理功能示例
2017/09/22 PHP
boxy基于jquery的弹出层对话框插件扩展应用 弹出层选择器
2010/11/21 Javascript
Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法总结
2013/11/14 Javascript
Jquery如何实现点击时高亮显示代码
2014/01/22 Javascript
通过正则表达式实现表单验证是否为中文
2014/02/18 Javascript
Node.js中使用mongoskin操作mongoDB实例
2014/09/28 Javascript
JS实现可展开折叠层的鼠标拖曳效果
2015/10/09 Javascript
jQuery分页插件jquery.pagination.js使用方法解析
2017/02/09 Javascript
JavaScript实现瀑布流以及加载效果
2017/02/11 Javascript
Vue.js 2.0 移动端拍照压缩图片预览及上传实例
2017/04/27 Javascript
jQuery条件分页 代替离线查询(附代码)
2017/08/17 jQuery
Vue 获取数组键名的方法
2018/06/21 Javascript
vue新建项目并配置标准路由过程解析
2019/12/09 Javascript
JS常见错误(Error)及处理方案详解
2020/07/02 Javascript
vue.js 解决v-model让select默认选中不生效的问题
2020/07/28 Javascript
Ant Design的可编辑Tree的实现操作
2020/10/31 Javascript
[00:12]2018DOTA2亚洲邀请赛SOLO赛 MidOne是否中单第一人?
2018/04/05 DOTA
[36:20]KG vs SECRET 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
python显示生日是星期几的方法
2015/05/27 Python
Python读写配置文件的方法
2015/06/03 Python
浅析python中的分片与截断序列
2016/08/09 Python
Python常见数据结构之栈与队列用法示例
2019/01/14 Python
在Python中使用Neo4j的方法
2019/03/14 Python
Python编程实现tail-n查看日志文件的方法
2019/07/08 Python
Python实现计算长方形面积(带参数函数demo)
2020/01/18 Python
Python3.7下安装pyqt5的方法步骤(图文)
2020/05/12 Python
Python3.9 beta2版本发布了,看看这7个新的PEP都是什么
2020/06/10 Python
keras实现VGG16方式(预测一张图片)
2020/07/07 Python
阿迪达斯丹麦官网:adidas丹麦
2016/10/01 全球购物
迪士尼西班牙官方网上商店:ShopDisney西班牙
2020/02/02 全球购物
市政施工员自我鉴定
2014/01/15 职场文书
详解nginx.conf 中 root 目录设置问题
2021/04/01 Servers
Vscode中SSH插件如何远程连接Linux
2022/05/02 Servers