• 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;
                300px;
            }
            .box input{
                padding:0 10px;
                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>
  • 相关阅读:
    http请求头和响应头详细解释
    http协议POST请求头content-type主要的四种取值
    什么是精准测试
    测试管理(管事篇)
    有赞全链路压测方案设计与实施详解
    饿了么全链路压测平台的实现与原理
    京东全链路压测军演系统(ForceBot)架构解密
    java Apache common-io 讲解
    CentOS 7.0 安装go 1.3.1
    异常
  • 原文地址:https://www.cnblogs.com/diasa-fly/p/7280113.html
Copyright © 2020-2023  润新知