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 相关文章推荐
js左侧多级菜单动态的解决方案
Feb 01 Javascript
js 数组的for循环到底应该怎么写?
May 31 Javascript
javascript 事件处理示例分享
Dec 31 Javascript
js结合正则实现国内手机号段校验
Jun 19 Javascript
jQuery+AJAX实现遮罩层登录验证界面(附源码)
Sep 13 Javascript
基于BootStrap环境写jQuery tabs插件
Jul 12 Javascript
利用Angular+Angular-Ui实现分页(代码加简单)
Mar 10 Javascript
阿里大于短信验证码node koa2的实现代码(最新)
Sep 07 Javascript
vue 通过下拉框组件学习vue中的父子通讯
Dec 19 Javascript
vue 监听某个div垂直滚动条下拉到底部的方法
Sep 15 Javascript
vue 实现通过vuex 存储值 在不同界面使用
Nov 11 Javascript
利用JavaScript模拟京东按键输入功能
Dec 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
虹吸壶煮咖啡26个注意事项
2021/03/03 冲泡冲煮
PHP实现获取并生成数据库字典的方法
2016/05/04 PHP
javascript新手语法小结
2008/06/15 Javascript
js/jquery获取浏览器窗口可视区域高度和宽度以及滚动条高度实现代码
2012/12/17 Javascript
document.all的一个比较完整的总结及案例
2013/01/31 Javascript
用js实现trim()的解决办法
2013/04/16 Javascript
简单的代码实现jquery定时器
2014/01/03 Javascript
Javascript访问器属性实例分析
2014/12/30 Javascript
jquery比较简洁的软键盘特效实现方法
2015/03/19 Javascript
nodejs 的 session 简单使用
2016/06/06 NodeJs
需要牢记的JavaScript基础知识
2016/09/25 Javascript
JS填写银行卡号每隔4位数字加一个空格
2016/12/19 Javascript
多个上传文件用js验证文件的格式和大小的方法(推荐)
2017/03/09 Javascript
JavaScript实现的选择排序算法实例分析
2017/04/14 Javascript
iconfont的三种使用方式详解
2018/08/05 Javascript
微信小程序绘制图片发送朋友圈
2019/07/25 Javascript
layer弹出框确定前验证:弹出消息框的方法(弹出两个layer)
2019/09/21 Javascript
Node配合WebSocket做多文件下载以及进度回传
2019/11/07 Javascript
Vue实现背景更换颜色操作
2020/07/17 Javascript
Vue scoped及deep使用方法解析
2020/08/01 Javascript
Python实现的爬虫功能代码
2017/06/24 Python
使用Python进行目录的对比方法
2018/11/01 Python
使用Python实现图像标记点的坐标输出功能
2019/08/14 Python
djano一对一、多对多、分页实例代码
2019/08/16 Python
Python实现将元组中的元素作为参数传入函数的操作
2020/06/05 Python
金蝶的一道SQL笔试题
2012/12/18 面试题
西部世纪.net笔试题面试题
2014/04/03 面试题
文职个人求职信范文
2013/09/23 职场文书
计算机专业学生的自我评价
2013/12/15 职场文书
小学生美德少年事迹
2014/02/02 职场文书
人事科岗位职责范本
2014/03/02 职场文书
人力资源主管的岗位职责
2014/03/15 职场文书
学生个人自我鉴定范文
2014/03/28 职场文书
退税申请报告怎么写
2015/05/18 职场文书
教师节座谈会主持词
2015/07/03 职场文书
mysql分表之后如何平滑上线详解
2021/11/01 MySQL