1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124
| <!DOCTYPE html> <html lang="en">
<head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta http-equiv="X-UA-Compatible" content="ie=edge" /> <title>Document</title> <link rel="stylesheet" href="./css/search.css" /> <script src="./lib/template-web.js"></script> <script src="./lib/jquery.js"></script> </head>
<body> <div class="container"> <img src="./images/taobao_logo.png" alt="" class="logo" />
<div class="box"> <div class="tabs"> <div class="tab-active">宝贝</div> <div>店铺</div> </div> <div class="search-box"> <input type="text" id="ipt" class="ipt" placeholder="请输入要搜索的内容" /> <button class="btnSearch"> 搜索 </button> </div> <div id="suggest-list"></div> </div> </div>
<script type="text/html" id="suggest-items"> {{each result}} <div id="suggest-item">{{$value[0]}}</div> {{/each}} </script>
<script> $(function () { var timer = null function debounceSearch(keywords) { timer = setTimeout(function () { getSuggestList(keywords) }, 500) }
var cacheObj = {}
$('#ipt').on('keyup', function () { clearTimeout(timer)
const txt = $(this).val().trim()
if (cacheObj[txt]) { return renderSuggestList(cacheObj[txt]) }
if (txt.length <= 0) { return $('#suggest-list').empty().hide() }
debounceSearch(txt) })
function getSuggestList(goods) { $.ajax({ type: 'GET', url: 'https://suggest.taobao.com/sug?q=' + goods, dataType: 'jsonp', jsonp: 'callback', success: function (res) { renderSuggestList(res) } }) }
function renderSuggestList(res) { if (res.result.length <= 0) { return $('#suggest-list').empty().hide() } const htmlStr = template('suggest-items', res) $('#suggest-list').html(htmlStr).show() var k = $('#ipt').val().trim() cacheObj[k] = res }
}) </script> </body>
</html>
|