zoukankan      html  css  js  c++  java
  • jq实现搜索引擎的提示效果

    (function ($) {
        $.fn.Search = function (options) {
            var defaults = {
                inputid: "search",
                divid: "searchDiv",
                callback: function (pageindex) {
                }
    
            };
    
            var i = 0;
            var opts = $.extend(defaults, options);
            
            $("#" + opts.inputid).keyup(function (e) {
                e = e || window.event;
                if (e.keyCode != 40 && e.keyCode != 38 && e.keyCode != 13) {
                    if ($("#" + opts.inputid).val() == "") {
                        $("#" + opts.divid).hide();
                        i = 0;
                    } else {
                        var value = $("#" + opts.inputid).val();
                        $.ajax({
                            //提交方式为Get
                            type: "get",
                            //访问的handler地址   参数d=" + new Date()是为了防止缓存是他每次访问的参数不同
                            url: "/Common/SearchInfo",
    
                            //设置提交的参数
                            data: { name: value },
                            //提交的方式是json提交
                            dataType: "json",
                            //如果成功则得到返回的结果然后用javascript库中的each方法遍历返回的json集合
                            success: function (data) {
                                //用each遍历json集合
                                if (data != null) {
                                    var html = "";
                                    $.each(data, function (i, dataitem) {
                                        html = html + "<div style='cursor:hand' id='div" + i + "'  onmouseover='getBlue(this)'onmouseout='getWhite(this)' onclick='document.getElementById("search").value = this.innerText;$("#" + opts.divid + "").hide();i=0;'style='font-size:16px;padding-top:5px;padding-buttom:5px;'><span style='font-weight:bold'>" + dataitem.ComName.substring(0, value.length) + "</span><span>" + dataitem.ComName.substring(value.length, dataitem.ComName.length) + "</span></div>";
                                    });
                                    $("#" + opts.divid).html(html);
                                    $("#" + opts.divid).show();
                                } else {
                                    $("#" + opts.divid).html("");
                                    $("#" + opts.divid).hide();
                                }
                            },
                            //如果失败的话则弹出错误提醒
                            error: function (data) {
                                $("#" + opts.divid).hide();
                                i = 0;
                            }
                        });
                    }
                }
    
                if (e.keyCode == 40) {
                    var divs = $("#" + opts.divid).find("div");
                    if (divs.length == 1) {
                        divs[0].style.backgroundColor = "#e8e3e3";
                        return;
                    }
                    if ($.trim(i) == $.trim(divs.length)) {
                        divs[0].style.backgroundColor = "#e8e3e3";
                        $("#" + divs[0].id).siblings().css("backgroundColor", "white");
                        i = 0;
                    } else {
                        divs[i].style.backgroundColor = "#e8e3e3";
                        $("#" + divs[i].id).siblings().css("backgroundColor", "white");
                    }
                    i = i + 1;
                }
                if (e.keyCode == 38) {
                    var divs = $("#" + opts.divid).find("div");
                    if (i == 0) {
                        i = divs.length;
                    }
                    if (divs.length == 1) {
                        divs[0].style.backgroundColor = "#e8e3e3";
                        return;
                    }
                    if ($.trim(i) >= 0) {
                        divs[i - 1].style.backgroundColor = "#e8e3e3";
                        $("#" + divs[i - 1].id).siblings().css("backgroundColor", "white");
                    } else {
                        divs[i - 1].style.backgroundColor = "#e8e3e3";
                        $("#" + divs[i - 1].id).siblings().css("backgroundColor", "white");
                        i = 0;
                    }
                    i = i - 1;
                }
                if (e.keyCode == 13) {
                    var divs = $("#" + opts.divid).find("div");
                    for (var j = 0; j < divs.length; j++) {
                        if (divs[j].style.backgroundColor == "rgb(232, 227, 227)") {
                            var span = $("#" + divs[j].id).find("span");
                            var spanText = span[0].innerText + span[1].innerText;
                            $("#" + opts.inputid).val(spanText);
                            $("#" + opts.divid).hide();
                            i = 0; 
                        }
                    } 
                }
            });
        };
    
    })(jQuery);
    function getBlue(obj) {
        obj.style.backgroundColor = "#e8e3e3";
    }
    function getWhite(obj) {
        obj.style.backgroundColor = "white";
    }
    

      

  • 相关阅读:
    宿主机无法访问CentOS7上Jenkins服务的解决办法
    415. Add Strings
    367. Valid Perfect Square
    326. Power of Three
    258. Add Digits
    231. Power of Two
    204. Count Primes
    202. Happy Number
    172. Factorial Trailing Zeroes
    171. Excel Sheet Column Number
  • 原文地址:https://www.cnblogs.com/liuchang/p/4514806.html
Copyright © 2011-2022 走看看