js实现类似百度提示功能

<div>
   <input id="condition" name="object.name" type="text" onkeyup="doQuery()"/> 这个键盘事件很重要实现动态交互   <div id="div" style="position: absolute;z-index: 100">
	  <table id="table">
	  </table>
   </div>
<div>

以上是基本的JSP页面

-----------------------------------------------------------------------------------------------------------------------------------------------------

对应的JS代码

$(function(){
             $("condition").val("");//刷新的时候清除表单值
    //----------------------提示信息--------------------------------
            $("#condition").bind("mouseover", function () {
                doQuery();
                $("#div").show();
            }).bind("mouseout", function () {
                $("#div").hide();
            }).bind("onkeyup",function(){
                getLinkData();
            });

            $("#div").bind("mouseover", function () {
                $("#div").show();
            }).bind("mouseout", function () {
                $("#div").hide();
            })
});
function getLinkData() {
                var div = $("#div");            //获得对应的div对象
                var table= $("#table");       //获得对应的tbody对象
                var condition= $("#table");  //获得对应的输入框对象
                clear();//清除联想输入提示框的内容
                //利用ajax获取后台的模糊查询的数据,并且封装成下拉列表的形式展现出来
                $.ajax( {
                    type : "POST",
                    dataType : "json",
                    url : $.WEB_ROOT + ‘‘,
                    data : jQuery.param( {
                        "condition":$.trim($("#condition").val())},

             error:function(){
                                alert("没有对应的数据,请查看输入的查询条件!");
                                },
                    success : function(data) {//当Ajax提交成功时调用的方法
                                  if(data.length==0){
                                      return;
                                      }
                                  setOffsets();//设置联想输入下拉列表提示框的位置
                                  var tr,td,text;
                                  for (var i = 0; i < data.length; i++) {//根据返回的值,手动的拼tbody的内容
                                      text = document.createTextNode(data[i].name);//从Action中返回的数据中取出name的值
                                      td = document.createElement("td");//创建一个td的对象
                                      tr = document.createElement("tr");//创建一个tr的对象      className="mouseOver;
                                      $(td).mouseover(function(){
                                          $(this).attr("class","mouseOver");
                                      });
                                      $(td).mouseout(function(){
                                          $(this).attr("class","");
                                      });
                                      td.onclick = function(){populateModel(this)};//单击td是的方法为populateModel
                                      td.appendChild(text);
                                      tr.appendChild(td);
                                      div.appendChild(tr);
                                  }
                                }
                        });
                //点击下拉列表中的某个选项时调用的方法
                function populateModel(cell) {
                        clear();
                        condition.value = cell.firstChild.nodeValue;
                        //initOtherData(condition.value);利用输入框中的数据调用其他方法,初始化其他数据
                        clear();//清除自动完成行
                }
                //清除自动完成行,只要tbody有子节点就删除掉,并且将将外围的div的边框属性设置为不可见的
                function clear() {
                    while (div.childNodes.length > 0) {
                        div.removeChild(div.firstChild);
                    }
                    div.attr("display", "none");
                }
                //设置下拉列表的位置和样式
                function setOffsets() {
                    var width = condition.offsetWidth;//获取linkDataProperty输入框的相对宽度
                    var left = getLeft(condition);
                    var top = getTop(condition) + condition.offsetHeight;

                    div.style.border = "black 1px solid";
                    div.style.left = left + "px";
                    div.style.top = top + "px";
                    div.style.width = width + "px";
                }
                //获取指定元素在页面中的宽度起始位置
                function getLeft(e) {
                    var offset = e.offsetLeft;
                    if (e.offsetParent != null) {
                        offset += getLeft(e.offsetParent);
                    }
                    return offset;
                }
                //获取指定元素在页面中的高度起始位置
                function getTop(e) {
                    var offset = e.offsetTop;
                    if (e.offsetParent != null) {
                        offset += getTop(e.offsetParent);
                    }
                    return offset;
                }
            }

          //清空输入框中的数据
            function clear() {
                var condition=document.getElementById("condition");
                condition.value="";
            }

------------------------------------------------------------------------------------------------------------------------------------------------

下拉框滑动选择颜色变化对应的css

.mouseOver{
    background: red;
}
时间: 2024-10-10 13:30:48

js实现类似百度提示功能的相关文章

js 实现类似百度联想输入,自动补全功能

js  实现类似百度联想输入,自动补全功能 方案一: search是搜索框id="search" 1 //点击页面隐藏自动补全提示框 2 document.onclick = function (e) { 3 var e = e ? e : window.event; 4 var tar = e.srcElement || e.target; 5 if (tar.id != search) { 6 if ($("#" + auto).is(":visibl

利用FlashPaper实现类似百度文库功能

最近需要实现一个类似百度文库的功能,在Google上淘了一段时间,发现FlashPaper还算能够不错的实现此需求. 首先讲下思路: 1>安装FlashPaper: 2>利用java代码将doc等文件转换为swf文件: 3>页面展示swf即可. 关于FlashPaper的使用及安装这里就不再赘述,网上的资料很多,可以自行Google. 下面是java下如何利用FlashPaper将doc等文件转化为swf文件--> @param swfName 指定生成的swf文件名@param

Ajax 连接数据库实现类似百度搜索功能

1.Html代码部分 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv=&qu

js实现类似jquery基础功能 简单选择器/事件/属性

按钮样式定义 <style> .btn{display: inline-block;width: 100px;height: 20px;color: #fff;font-size: 12px;background-color: #0033dd;text-align: center;line-height: 20px;text-decoration: none;border:  5px #0000ff outset;} .btn-big-test{width: 300px;height: 85p

使用Qtip2来开发功能强大的删除和信息提示功能

在线演示1 本地下载 前面的文章中我们介绍了超棒的20款javascript工具提示条(tooltips)类库,在这篇文章中我们曾经提到过Qtip2这个强大的jQuery工具提示插件,这个jQuery插件能够帮助你快速创建强大的工具提示(tooltip)功能.如果大家使用微博的话,肯定会经常类似如下的用户信息界面,这个界面使用的就是一个工具提示功能.使用Qtip2你也可以快速开发出类似的提示功能. 在接下来的内容中,我们将创建一个博客文章阅读页面,并且提供两个“按钮”来控制“删除”和“喜欢”,界

小练习:用jQuery简单模拟百度搜索框的提示功能

今天第一次接触jQuery,用jQuery模拟了一下百度搜索的自动提示功能.连带jQuery的基本知识点,简单总结如下: 首先得在工程中导入插件:jquery-1.4.2.js ,并在html的head中引入该js: 1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 2 <html>

站长工具|百度搜索框提示功能

百度向站长开放免费“百度搜索框”代码和“百度搜索框提示”代码.只需进行简单的设置, 即可将“ 百度搜索框( 带提示功能)”功能快速加入到您的网页中.提升用户在网站中的搜索体验. 根据不同类型的网站需求,站长工具一共提供三种引入方式供您选择: 简单方式——方便的将“百度搜索框(带提示功能)”直接加入到您的网页中.将以下代码加入到您的网页中,即可获得带有“搜索框提示”功能的百度搜索框 HTML代码: <form action=”http://www.baidu.com/baidu” target=”

一些具非常有用源代码分享(百度指数破解(最新版),NDIS实现类似P2P终结者功能代码,GOOGLE在线翻译等等)

最近自己要去深圳,开始人生的第二份工程,所以整理以前自己写过的小玩意代码(跟自己工作的代码无关),自己下班回家写的代码,准备卸载简历里面去求职.代码风格自己有注意,但还是每次看自己以前写的代码就感觉是那么丑. 1:NDIS实现类似P2P终结者的核心代码. 说明:最近辞职以后在写东西,自己开始玩驱动开发,发现还是没有想象中难,但环境还是比应用层开发环境还是差多了,要非常注意内存的一些细节,不然很容易导致蓝屏.还有就是NDIS 中间层资料太少,中国书籍有一定的介绍,但只是简单的代码,而那些扩展的Pa

JS实现仿百度输入框自动匹配功能的示例代码

JS实现仿百度输入框自动匹配功能的示例代码 作者: 字体:[增加 减小] 类型:转载 本篇文章主要是对JS实现仿百度输入框自动匹配功能的示例代码进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助 现在很多网站都有这种效果,在文本框输入一个字符,下边会出来相匹配的内容,这个代码就演示了这个功能是如何完成的,当然,这是个静态的,你可以将提示的内容从数据库读取出来,要用到AJAX那东东. 复制代码 代码如下: <HTML><HEAD><title>带输入匹配的文本框&l