js模擬百度模糊搜索的實(shí)例
廢話不多說,直接上代碼
<!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');
//向百度的服務(wù)器發(fā)送JSONP請求,把數(shù)據(jù)綁定到容器當(dāng)中
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(){
//文本框獲取焦點(diǎn)或者輸入內(nèi)容,判斷當(dāng)前文本框中是否有內(nèi)容,有內(nèi)容綁定數(shù)據(jù),沒有內(nèi)容隱藏展示框
$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模擬百度模糊搜索的實(shí)例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
avascript中的自執(zhí)行匿名函數(shù)應(yīng)用示例
javascript中的自執(zhí)行匿名函數(shù)可以用它創(chuàng)建命名空間,只要把自己所有的代碼都寫在這個(gè)特殊的函數(shù)包裝內(nèi),那么外部就不能訪問,除非你允許2014-09-09
微信頁面彈出鍵盤后iframe內(nèi)容變空白的解決方案
當(dāng)鍵盤彈出后,頁腳也被頂起來;而當(dāng)搜索完(要刷新整體頁面),鍵盤縮回后,iframe里 鍵盤當(dāng)住的地方變成白色。怎么解決這個(gè)問題呢?下面腳本之家小編給大家分享微信頁面彈出鍵盤后iframe內(nèi)容變空白的解決方案,一起看看吧2017-09-09
javascript設(shè)計(jì)模式之module(模塊)模式
這篇文章主要為大家詳細(xì)介紹了javascript設(shè)計(jì)模式之module(模塊)模式 ,感興趣的小伙伴們可以參考一下2016-08-08
H5如何實(shí)現(xiàn)喚起APP及調(diào)試bug解決
這篇文章主要為大家介紹了H5如何實(shí)現(xiàn)喚起APP及調(diào)試bug解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-05-05
JavaScript中立即執(zhí)行函數(shù)實(shí)例詳解
javascript和其他編程語言相比比較隨意,所以javascript代碼中充滿各種奇葩的寫法,有時(shí)霧里看花,當(dāng)然,能理解各型各色的寫法也是對javascript語言特性更進(jìn)一步的深入理解。這篇文章主要給大家介紹了關(guān)于JavaScript中立即執(zhí)行函數(shù)的相關(guān)資料,需要的朋友可以參考下。2017-11-11
JavaScript Date對象應(yīng)用實(shí)例分享
這篇文章主要分享了JavaScript Date對象應(yīng)用實(shí)例,獲取日期時(shí)間,倒計(jì)時(shí)功能實(shí)現(xiàn),限時(shí)搶購活動(dòng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-10-10
JS實(shí)現(xiàn)圖文并茂的tab選項(xiàng)卡效果示例【附demo源碼下載】
這篇文章主要介紹了JS實(shí)現(xiàn)圖文并茂的tab選項(xiàng)卡效果,涉及javascript響應(yīng)鼠標(biāo)事件動(dòng)態(tài)修改頁面元素屬性的相關(guān)操作技巧,并附帶demo源碼供讀者下載參考,需要的朋友可以參考下2016-09-09
詳解Webpack + ES6 最新環(huán)境搭建與配置
這篇文章主要介紹了詳解Webpack + ES6 最新環(huán)境搭建與配置,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-06-06
javascript面向?qū)ο蟪绦蛟O(shè)計(jì)(一)
這篇文章主要介紹了javascript面向?qū)ο蟪绦蛟O(shè)計(jì),分享給大家一段代碼,注釋里講解的非常詳細(xì),有助于我們理解面向?qū)ο?,這里推薦給大家。2015-01-01
js實(shí)現(xiàn)精確到毫秒的倒計(jì)時(shí)效果
這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)精確到毫秒的倒計(jì)時(shí)效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-08-08

