AJAX实现类似百度的搜索提示,自动补全和键盘、鼠标操作
2013-12-12 17:34
1141 查看
<script type="text/javascript"> $(document).ready(function(){ var highlightIndex = -1; $("#name").bind("keyup", function(event){ document.getElementById("auto").style.display='block'; var keyCode = event.keyCode; $("#log").html(keyCode); if(keyCode >= 65 && keyCode <=90 || keyCode == 8 || keyCode == 46 || keyCode==32){ //输入字母,退格或删除,显示最新的内容 var enteredName = $("#name").val(); if(typeof(enteredName) == undefined || enteredName==""){ return ; } $.ajax({ type: 'post', url : '/ajax/ajax_building_listNames.action', data:{'enteredName':enteredName}, success : function(data) { $("#auto").html(""); if(data && data.length > 0){ var autoNode = $("#auto"); for(var i = 0; i < data.length; i++){ var newNode = $("<div>").attr("id", i); newNode.html(data[i]).appendTo(autoNode); newNode.mouseover(function(){ $(this).css("background-color","gray"); highlightIndex = $(this).attr("id"); //alert(highlightIndex); }); newNode.mouseout(function(){ $(this).css("background-color","white"); }); newNode.click(function(){ $("#name").attr("value", $(this).text()); hightlightIndex = -1; document.getElementById("auto").style.display='none'; }); }; } } }); }else if(keyCode == 13){ if(highlightIndex != -1){ var selectNode = $("#auto").children("div").eq(highlightIndex); if(selectNode){ $("#name").attr("value", $(selectNode).text()); document.getElementById("auto").style.display='none'; } } }else if(keyCode == 40 || keyCode == 38){ if(keyCode == 40){ //如果是向下 var autoNodes = $("#auto").children("div"); if(highlightIndex != -1){ //对当前选中的下一项的操作 var selectNode = autoNodes.eq(highlightIndex+1); if(selectNode){ $("#name").attr("value", $(selectNode).text()); //改变当前高亮的索引值,让当前选中高亮 selectNode.css("background-color","gray"); //当前被选中去掉高亮 var selectNode = autoNodes.eq(highlightIndex); selectNode.css("background-color","white"); } }else if(highlightIndex == -1){ var selectNode = autoNodes.eq(highlightIndex+1); selectNode.css("background-color","gray"); } highlightIndex++; if(highlightIndex==autoNodes.length){ //如果索引值等于提示框中内容的数组长度,则指向最头一个元素 autoNodes.eq(highlightIndex).css("background-color","white"); highlightIndex = 0; autoNodes.eq(highlightIndex).css("background-color","gray"); $("#name").attr("value", autoNodes.eq(highlightIndex).text()); } } if(keyCode == 38){ //如果是向上 var autoNodes = $("#auto").children("div"); if(highlightIndex != -1){ //对当前选中的上一项的操作 var selectNode = autoNodes.eq(highlightIndex-1); if(selectNode){ $("#name").attr("value", $(selectNode).text()); //改变当前高亮的索引值,让当前选中高亮 selectNode.css("background-color","gray"); //当前被选中去掉高亮 var selectNode = autoNodes.eq(highlightIndex); selectNode.css("background-color","white"); } highlightIndex--; }else if(highlightIndex == -1){ //如果索引值为-1,则指向最后一个元素 highlightIndex = autoNodes.length-1; autoNodes.eq(highlightIndex).css("background-color","gray"); } } } }); //隐藏自动补全框,并定义css属性 $("#auto").css("position","absolute") .css("z-index", 9999) .css("background-color", "white") .css("border","1px black solid") .css("top",$("#name").offset().top + $("#name").height() + 5 + "px") .css("left",$("#name").offset().left + "px") .width($("#name").width() + 2); });
}
}); </script>
相关文章推荐
- AJAX实现类似百度的搜索提示,自动补全和键盘、鼠标操作
- JQuery+ajax实现类似百度搜索自动匹配功能
- 百度搜狗等搜索引擎智能提示(JSONP跨域实现自动补全搜索建议)
- 百度搜狗等搜索引擎智能提示(JSONP跨域实现自动补全搜索建议)
- jquery实现百度类似搜索提示功能(AJAX应用)
- JQuery+ajax实现类似百度搜索自动匹配功能
- 百度搜狗等搜索引擎智能提示(JSONP跨域实现自动补全搜索建议)
- 百度等搜索引擎智能提示(JSONP跨域实现自动补全搜索建议)
- 让input框实现类似百度的搜索提示(基于jquery事件监听)
- js/jquery 写类似百度搜索“自动补全”信息
- ajax实现搜索提示功能 (关键字自动匹配功能)
- Ajax实现搜索栏中输入时的自动提示功能
- 如何实现类似百度搜索提示的效果
- 让input框实现类似百度的搜索提示(基于jquery事件监听)
- AJAX实例二:实现类似Google的搜索提示【原著】
- 基于jquery实现的类似百度搜索的输入框自动完成功能
- ssh框架下实现百度搜索自动补全功能
- 基于jquery实现的类似百度搜索的输入框自动完成功能
- ajax遍历数组(实现百度搜索提示的效果)
- JS实现输入框类似百度搜索的智能提示效果