返回首页
当前位置: 主页 > AJAX >

google suggest下拉菜单(jQuery版)

时间:2010-06-26 00:11来源:未知 作者:admin 点击:

suggest.js文件(在引入suggest.js文件前需要先引入jquery-1.4.2.min.js):

$(function() {  
    var k = -1;  
    //给查询文本框绑定click keyup事件,进行这两个事件,自动查询数据  
    $("#FrmChangshang").bind('click keyup', function(event) {  
        //获取键盘操作事件代码  
        var keyc = event.keyCode || event.which || event.charCode;  
        //查询数据为空,或者键盘操作代码为上下移动键,不进行查询操作  
        if ($("#FrmChangshang").val().length > 0 && keyc != 38 && keyc != 40) {  
            $.ajax({  
            url: "SearchCompany.ashx",  
                //firefox下必须对cname的编码,否则取不到数据,转换为utf-8也可以  
                data: "cname=" + escape($("#FrmChangshang").val()),  
                type: "get",  
                cache: false,  
                dataType: "xml",  
                beforeSend: function(XMLHttpRequest) {  
                    //请求前,列表曾显示加载数据提示  
                    $("#name_table_body").append("<tr><td>数据加载中......</td></tr>");  
                },  
                success: function(data, textStatus) {  
                    //设置层样式  
                    divsOffset();  
                    //先清空列表  
                    $("#name_table_body").html("");  
                    //返回数据成功,添加到列表,并为创建的表格td添加相应属性  
                    $("content", data).each(function(i, domEle) {  
                        $("<tr></tr>").append($("<td></td>", {  
                            mouseout: function() {  
                                $(this).css({ "backgroundColor": "#ffffff", "font-size": "15px", "color": "#000000" });  
                            },  
                            mouseover: function(tdi) {  
                                return function() {  
                                    k = tdi; setStyle(k);  
                                    $("#FrmChangshang").val($(this).text());  
                                };  
                            } (i),  
                            style: "background-color:#FFFAFA;font-size:15px;border:0;" 
                        }  
                        ).append($(domEle).children("name").text())).appendTo("#name_table_body");  
                    });  
                },  
                complete: function(XMLHttpRequest, textStatus) {  
                    //请求完成!  
                },  
                error: function(XMLHttpRequest, textStatus, errorThrown) {  
                    //请求出错处理  
                    $("#name_table_body").html("").append("<tr><td >错误提示:出见异常!!!</td></tr>");  
                }  
            })  
        }  
    })  
    //用键盘上下键移动时,样式设置函数  
    function setStyle(num) {  
        $("#name_table_body").find("td").each(function(Tindex, TdomEle) {  
            if (Tindex == num) {  
                $(TdomEle).css({ "backgroundColor": "#3366cc", "font-size": "15px", "color": "#ffffff", "cursor": "pointer" });  
            }  
            else {  
                $(TdomEle).css({ "backgroundColor": "#ffffff", "font-size": "15px", "color": "#000000" });  
            }  
        });  
    }  
    //查询框失去焦点清除数据,并隐藏  
    $("#FrmChangshang").blur(function() {  
        $("#name_table_body").html("");  
        $("#popup").hide();  
    })  
    //获取键盘上下键,通过上下键移动获取选中数据,同时更改其样式  
    $("#FrmChangshang").keydown(function(event) {  
        var tBody = $("#name_table_body").find("td").get();  
        var keyc = event.keyCode || event.which || event.charCode;  
        if (tBody == null)  
            return;  
        if (keyc == 40) {  
            k++;  
            if (k >= tBody.length) {  
                k = 0;  
            }  
            $("#FrmChangshang").val(tBody[k].firstChild.nodeValue);  
        }  
        else if (keyc == 38) {  
            k--;  
            if (k <= -1) {  
                k = tBody.length - 1;  
            }  
            $("#FrmChangshang").val(tBody[k].firstChild.nodeValue);  
        }  
        setStyle(k);  
    });  
    //设置层样式及绝对坐标  
    function divsOffset() {  
        $("#popup").show();  
        var inputTop = $("#FrmChangshang").offset().top;  
        var inputLeft = $("#FrmChangshang").offset().left;  
        var inputHeight = $("#FrmChangshang").outerHeight();  
        var inputWidth = $("#FrmChangshang").width();  
        $("#name_table").width(inputWidth + 2);  
        $("#popup").css({ "top": (inputTop + inputHeight), "width": inputWidth + 2, "left": inputLeft, "position": "absolute", "border": "#817f82 1px solid" });  
    }  
}) 

(责任编辑:admin)

[返回顶部]
相关文章【广告是网站生存发展的主要来源,请您多多支持!】
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名:密码: 验证码:点击我更换图片
推荐内容