jQuery仿google搜索下拉列表 支持键盘上下键 支持鼠标移动

  < div >     < input  type ="text"  name ="s"  id ="word"  value =""  url ="ajax.aspx?id=sousuo"  autocomplete ="off" >
         < input  type ="submit"  value ="搜索" >
         < div  id ="suggestions" >
     </ div >




 

<script type="text/javascript">


    var currentindex = -1;
    var size = 0;
    var currentTxt;
    function getSuggestion(w) {
        var url = $("#word").attr("url");
        var t = setTimeout(function () {
            $.getJSON(url, { w: w }, showData);
        }, 500);
    }
    function showData(data) {
        var suggestions = $("#suggestions").html("");
        var input = $("#word");
        if ($(data).length > 0) {
            $(data).each(function (i, it) {
                suggestions.append('<li >' + it + '</li>');
            })
            currentindex = -1;
            suggestions.show();
            suggestions.children("li").click(function () {
                input.val($(this).text());
                suggestions.hide();
            });
            size = $("#suggestions li").size();
            document.onclick = function (e) {
                var e = e ? e : window.event;
                var tar = e.srcElement || e.target;
                if (tar.id != "suggestions") {
                    suggestions.hide();
                }
            }
        }
        else {
            suggestions.hide();
        }
    }

    function movethis(up) {

        currentindex = currentindex + (up ? -1 : 1);
        if (currentindex == size) {
            currentindex = 0;
        }
        else if (currentindex < 0) {
            currentindex = size-1 ;
        }

        $("#suggestions li").removeClass("suggec");
        $($("#suggestions li")[currentindex]).addClass("suggec");
        var textvalue = $($("#suggestions li")[currentindex]).text();
   
        $("#word").val(textvalue);
    }
    $(function () {
        var input = $("#word");
        var suggestions = $("#suggestions").html("").hide();
        input.keyup(function (e) {
            if (e.keyCode != 40 && e.keyCode != 38) {
                var word = $.trim(input.val());
                if (word) {

                    getSuggestion(word);
                }

                else {
                    suggestions.hide();
                }
            }

        });

        input.keyup(function (evn) {
            if (evn.keyCode == 38) {
                movethis(true);
            }
            else if (evn.keyCode == 40) {
                movethis(false);
            }
            else if (evn.keyCode == 13) {
                $("#suggestions").hide();
                $(".br").trigger("click");
            }
        })
        $("#suggestions").mouseover(function () { //鼠标滑过  
           
            select = $("#suggestions");
            select.children("li").mouseover(
                function () {
                    $(this).addClass("suggec");
                    currentindex = $("#suggestions li").index(this);
                });
        }).mouseout(function () { //鼠标滑出  
            $("#suggestions li").removeClass("suggec");
       
        });
        suggestions.width(input.outerWidth() - 1);

    })



</script>

 ajax.aspx

 /*取到的json串.这边可以自己处理一下数据*/

["<span><b>魔法</b>提琴手</span>","<span><b>魔法</b>少女奈叶StrikerS</span>","<span><b>魔法</b>少女奈叶A's</span>","<span><b>魔法</b>少女奈叶</span>","<span><b>魔法</b>护士小麦</span>","<span><b>魔法</b>战士李维

</span>","<span><b>魔法</b>阵都市</span>","<span><b>魔法</b>奇缘</span>","<span><b>魔法</b>先生涅吉!</span>","<span><b>魔法</b>先生涅吉!</span>","<span><b>魔法</b>少女砂沙美</span>","<span><b>魔法</b>战士李维

</span>","<span><b>魔法</b>咪路咪路Charming</span>","<span><b>魔法</b>使派遣会社</span>","<span><b>魔法</b>小歌王</span>","<span><b>魔法</b>使的注意事项</span>","<span><b>魔法</b>学园MA</span>

","<span><b>魔法</b>先生 涅吉!~白翼 ALA ALBA~</span>","<span><b>魔法</b>禁书目录</span>","<span><b>魔法</b>保姆麦克菲</span>"]

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值