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 相关文章推荐
javascript使用eval或者new Function进行语法检查
Oct 16 Javascript
AngularJS向后端ASP.NET API控制器上传文件
Feb 03 Javascript
深入学习JavaScript的AngularJS框架中指令的使用方法
Mar 05 Javascript
AngularJS中watch监听用法分析
Nov 04 Javascript
AngularJs 利用百度地图API 定位当前位置 获取地址信息
Jan 18 Javascript
详解Angular.js指令中scope类型的几种特殊情况
Feb 21 Javascript
Angular.js中ng-include用法及多标签页面的实现方式详解
May 07 Javascript
vue父组件点击触发子组件事件的实例讲解
Feb 08 Javascript
使用Vue做一个简单的todo应用的三种方式的示例代码
Oct 20 Javascript
Node.js从字符串生成文件流的实现方法
Aug 18 Javascript
JS 创建对象的模式实例小结
Apr 28 Javascript
Postman无法正常返回结果问题解决
Aug 28 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
ADODB结合SMARTY使用~超级强
2006/11/25 PHP
细谈php中SQL注入攻击与XSS攻击
2012/06/10 PHP
详解WordPress开发中过滤属性以及Sql语句的函数使用
2015/12/25 PHP
Yii2实现跨mysql数据库关联查询排序功能代码
2017/02/10 PHP
js脚本学习 比较实用的基础
2006/09/07 Javascript
JQuery 前台切换网站的样式实现
2009/06/22 Javascript
IE6、IE7中setAttribute不支持class/for/rowspan/colspan等属性
2011/08/28 Javascript
原生JavaScript实现连连看游戏(附源码)
2013/11/05 Javascript
javascript实现左右控制无缝滚动
2014/12/31 Javascript
JavaScript基础函数整理汇总
2015/01/30 Javascript
javaScript的函数对象的声明详解
2015/02/06 Javascript
Jquery中CSS选择器用法分析
2015/02/10 Javascript
JS实现仿新浪微博发布内容为空时提示功能代码
2015/08/19 Javascript
JavaScript实现汉字转换为拼音的库文件示例
2016/12/22 Javascript
深入理解ES6学习笔记之块级作用域绑定
2017/08/19 Javascript
vue实现前进刷新后退不刷新效果
2018/01/26 Javascript
通过jquery toggleClass()属性制作文章段落更改背景颜色
2018/05/21 jQuery
javascript设计模式 ? 适配器模式原理与应用实例分析
2020/04/13 Javascript
仿照Element-ui实现一个简易的$message方法
2020/09/14 Javascript
js+cavans实现图片滑块验证
2020/09/29 Javascript
python使用json序列化datetime类型实例解析
2018/02/11 Python
对Python3使运行暂停的方法详解
2019/02/18 Python
Python使用mongodb保存爬取豆瓣电影的数据过程解析
2019/08/14 Python
简单了解python中的与或非运算
2019/09/18 Python
基于Python爬取搜狐证券股票过程解析
2020/11/18 Python
HTML5 video视频字幕的使用和制作方法
2018/05/03 HTML / CSS
美国领先的精品家居照明和装饰产品在线零售商:LightsOnline.com
2018/01/23 全球购物
物业管理工作方案
2014/05/10 职场文书
毕业纪念册寄语大全
2015/02/26 职场文书
提档介绍信范文
2015/10/22 职场文书
python使用openpyxl库读写Excel表格的方法(增删改查操作)
2021/05/02 Python
MySQL sql_mode修改不生效的原因及解决
2021/05/07 MySQL
关于Python中*args和**kwargs的深入理解
2021/08/07 Python
Java比较两个对象中全部属性值是否相等的方法
2021/08/07 Java/Android
Windows和Linux上部署Golang并运行程序
2022/04/22 Servers
Redis实现分布式锁的五种方法详解
2022/06/14 Redis