jquery 仿百度搜索下拉框的插件
今天寫了個下拉插件分享出來
效果: , 可以搜素,也可以使用上下鍵選擇匹配出來的值
css
.select4_box{border: 1px solid #5897fb;position: absolute;width:250px;background: #fff; border-radius: 4px;-webkit-box-shadow: 0 4px 5px rgba(0, 0, 0, .15); box-shadow: 0 4px 5px rgba(0, 0, 0, .15);z-index: 9999;} .select4_box ul{padding: 0px;margin: 5px;} .select4_box ul li{list-style: none;padding: 3px 7px 4px; cursor: pointer;} .select4_box ul li:hover{background: #51A9A9;color: #fff;} .select4_box ul li.active{background: #3875d7; color: #fff;}
<input type="text" name="Shoushuid" class="Shoushuid" autocomplete="off"> <input type="text" name="Jiancha_xiangmu" class="Jiancha_xiangmu" autocomplete="off">
(function($){ $.fn.extend({ select4:function(options){ var defaults = { ajax_url:true } var options = $.extend(defaults, options); return this.each(function(){ $(".h2").remove(); var mythis = $(this); $(document).on("click",".select4_box li",function(){ mythis.val($(this).text()); $(".select4_box").remove(); }); $(document).click(function(event) { $(".select4_box").remove(); }); $(".select4_box").click(function(event) { event.stopPropagation(); }); mythis.click(function(event) { var val = $(this).val(); console.log(val); var mythis = $(this); var width = $(this).width()+14+"px"; var top = $(this).position().top+30; var left = $(this).position().left; $.ajax({ url:options.ajax_url, dataType:"json", data:{name:val}, success:function(json){ if(json.data){ var html = '<div class="select4_box"><ul>'; $.each(json.data,function(k,v){ html += '<li alt="'+v.id+'">'+v.name+'</li>'; }); html+='</ul></div>' $(".select4_box").remove(); mythis.after(html); $(".select4_box").css({top:top,left:left,width:width}); } } }); }); mythis.keyup(function(event) { if(event.keyCode==40){ var index = $(".select4_box li.active").index()+1; $(".select4_box li").eq(index).addClass('active').siblings().removeClass('active'); mythis.val($(".select4_box li.active").text()); }else if(event.keyCode==38){ var index = $(".select4_box li.active").index()-1; if(index<0){ index = $(".select4_box li").length-1; } $(".select4_box li").eq(index).addClass('active').siblings().removeClass('active'); mythis.val($(".select4_box li.active").text()); }else if(event.keyCode==13){ event.stopPropagation(); alert($(".select4_box li.active").text()); mythis.val($(".select4_box li.active").text()); return false; }else{ mythis.trigger("click"); } }); }); } }); })(jQuery);
使用
<script> $(function(){ //ajax_url是這個input綁定的ajax數據地址 $(".Jiancha_xiangmu").select4({"ajax_url":"/jiancha/select"}); $(".Shoushuid").select4({"ajax_url":"/jiancha/select"}); }); </script>
這個ajax的數據必須是這種格式的,當然你也可以改,插件那里我寫的應該都能看懂
ajax數據,我后臺使用的是go語言,你也可以換成你熟悉的語言
func (this *JianchaController) Select() { var name = this.GetString("name") where := models.NewWhere() if name != "" { where["like__name"] = "%" + name + "%" } data, _ := models.M("jiancha").Where(where).Select() this.AjaxReturn(1, "ok", data) }
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!