JavaScript 搜索下拉

在做项目的时候,有地方需要用到搜索下拉,发现找插件需要引入第三方js及样式,还要去撸css/js放到服务器(怕别个的cdn失效),这样感觉很烦,于是自己搞了个 ,代码比较乱 但很好用,记下来先

 

<style type="text/css">
#searchResult{margin: 0;position: absolute;width: 225px;display: none;background-color: #fff;max-height:300px;overflow-y:scroll; overflow-x:hidden; }
#searchResult li{
width:220px;line-height: 30px;
}
#searchResult li:hover{
background-color: green;
}
</style>
<div id="searchBox" style="position: relative;">
<input style="width:220px;height: 30px;" id="agentSearch" />
<input type="hidden" name="agentId" value="<?php if( $MmCommon->GetGpc('agentId') ){echo $MmCommon->GetGpc('agentId');}?>">
<ul id="searchResult">
<?php foreach($agents_list as $kal=>$val){?>
<li data-name="<?php echo $val['name'];?>" data-val="<?php echo $val['id'];?>" οnclick="selectResult(this);"><?php echo $val['name'];?></li>
<?php }?>
</ul>
</div>
<script type="text/javascript">
var resultArr = $('#searchResult li');
function selectResult(e){
var name = $(e).attr('data-name');
var val = $(e).attr('data-val');
$('#agentSearch').val(name);
$('#agentId').val(val);
$('#searchResult').hide();
}
$(document).click(function(){
var b = window.event.srcElement;
if($(b).parents('#searchBox').length > 0){
return true;
}else{
$('#searchResult').hide();
}
});
$('#agentSearch').focus(function(){
$('#searchResult').show();
});
$('#agentSearch').keyup(function(){
var li = '';
var ipt = $(this).val();
if( ipt ){
for(var i=0;i<resultArr.length;i++){
var ht = resultArr[i];
if( $(ht).html().indexOf(ipt)>=0 ){
li += "<li οnclick='selectResult(this)' data-name='"+$(ht).attr('data-name')+"' data-val='"+$(ht).attr('data-val')+"'>"+$(ht).html()+"</li>";
}
}
}else{
for(var i=0;i<resultArr.length;i++){
var ht = resultArr[i];
li += "<li οnclick='selectResult(this)' data-name='"+$(ht).attr('data-name')+"' data-val='"+$(ht).attr('data-val')+"'>"+$(ht).html()+"</li>";
}
}
$('#searchResult').html(li);
});
</script>

转载于:https://www.cnblogs.com/pengwen/p/7686726.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值