搜索建议样式
2013-07-02 18:17
232 查看
http://www.cnblogs.com/qiantuwuliang/archive/2009/08/03/1537213.html -- jquery相关
<script type="text/javascript">
var line = 0;
function del(){
if(jQuery("#newDiv")){
jQuery("#newDiv").remove();
line = 0;
}
}
jQuery(document).ready(function(){
//文本框失去焦点时层消失
jQuery(document.body).click(function(){
del();
});
jQuery(document).keydown(function(){
// 38 上 40下 13 回车
if(jQuery("#newDiv")){
if(event.keyCode == 40){
jQuery("table tbody tr").eq(line)
.css("backgroundColor", "#377486")
.css("color", "white");
jQuery("table tbody tr").eq(line < 0 ? 0 : line - 1)
.css("backgroundColor", "white")
.css("color", "black");
line = (line == jQuery("table tbody tr").length ? 0 : line + 1);
}else if(event.keyCode == 38){
line = (line == 0 ? jQuery("table tbody tr").length : line - 1);
jQuery("table tbody tr").eq(line)
.css("backgroundColor", "#377486")
.css("color", "white");
jQuery("table tbody tr").eq(line > jQuery("table tbody tr").length ? 0 : line + 1)
.css("backgroundColor", "white")
.css("color", "black");
}else if(event.keyCode == 13){
jQuery("#keyword").val(jQuery("table tbody tr").eq(line - 1).find("td").eq(0).html());
del();
doSearch();
}
}
});
jQuery("#keyword").bind("propertychange", function(){
//if(event.keyCode != 38 || event.keyCode != 40 || event.keyCode != 13){
del();
var top = jQuery("#keyword").offset().top;
var left = jQuery("#keyword").offset().left;
var newDiv = jQuery("<div/>").width(jQuery("#keyword").width() + 6)
.css("position", "absolute")
.css("backgroundColor", "white")
.css("width", "301px")
.css("left", left)
.css("top", top + jQuery("#keyword").height())
.css("border", "1px solid BLACK")
.attr("id", "newDiv");
var table = jQuery("<table width='100%'/>")
.attr("cellpadding", "0")
.attr("cellspacing", "0");
jQuery.post("/servlet/GetHotKeywordAction", {key: jQuery("#keyword").val()}, function(xml){
jQuery(xml).find("results result").each(function(){
var key = jQuery(this).attr("key");
var count = jQuery(this).attr("count");
var tr = jQuery("<tr/>").css("cursor", "pointer").mouseout(function(){
jQuery(this).css("backgroundColor", "white").css("color", "black");
}).mouseover(function(){
jQuery(this).css("backgroundColor", "#377486").css("color", "white");
}).click(function(){
jQuery("#keyword").val(jQuery(this).find("td").eq(0).html());
del();
});
var td1 = jQuery("<td/>").html(key).css("fontSize", "12px")
.css("margin", "5 5 5 5");
var td2 = jQuery("<td/>").html("")
.attr("align", "right").css("fontSize", "12px")
.css("color", "green").css("margin", "5 5 5 5");
tr.append(td1).append(td2);
table.append(tr);
newDiv.append(table);
});
});
jQuery(document.body).append(newDiv);
if(jQuery("#keyword").val() == ""){
jQuery("#newDiv").remove();
}
// }
});
jQuery("#keyword").bind("input", function(){
del();
var top = jQuery("#keyword").offset().top;
var left = jQuery("#keyword").offset().left;
var newDiv = jQuery("<div/>").width(jQuery("#keyword").width() + 6)
.css("position", "absolute")
.css("backgroundColor", "white")
.css("width", "301px")
.css("left", left)
.css("top", top + jQuery("#keyword").height())
.css("border", "1px solid BLACK")
.attr("id", "newDiv");
var table = jQuery("<table width='100%'/>")
.attr("cellpadding", "0")
.attr("cellspacing", "0");
jQuery.post("/servlet/GetHotKeywordAction", {key: jQuery("#keyword").val()}, function(xml){
jQuery(xml).find("results result").each(function(){
var key = jQuery(this).attr("key");
var count = jQuery(this).attr("count");
var tr = jQuery("<tr/>").css("cursor", "pointer").mouseout(function(){
jQuery(this).css("backgroundColor", "white").css("color", "black");
}).mouseover(function(){
jQuery(this).css("backgroundColor", "#377486").css("color", "white");
}).click(function(){
jQuery("#keyword").val(jQuery(this).find("td").eq(0).html());
del();
});
var td1 = jQuery("<td/>").html(key).css("fontSize", "12px")
.css("margin", "5 5 5 5");
var td2 = jQuery("<td/>").html("")
.attr("align", "right").css("fontSize", "12px")
.css("color", "green").css("margin", "5 5 5 5");
tr.append(td1).append(td2);
table.append(tr);
newDiv.append(table);
});
});
jQuery(document.body).append(newDiv);
if(jQuery("#keyword").val() == ""){
jQuery("#newDiv").remove();
}
});
});
</script>
IE支持 onPropertyChange 火狐支持oninput
Firefox有个oninput事件效果和onPropertyChange一样,所以同时加上oninput和onPropertyChange问题就解决
action:
response.setContentType("text/xml;charset=utf-8");
request.setCharacterEncoding("utf-8");
PrintWriter out = response.getWriter();
String key = request.getParameter("key");
clsKeyWordViewBus keyWordViewBus = new clsKeyWordViewBus();
ArrayList<String> resultList = keyWordViewBus.getHotWord(key);
StringBuilder xml = new StringBuilder();
xml.append("<results>");
for(String s : resultList){
xml.append("<result key='" +s + "' count=''></result>");
}
xml.append("</results>");
//System.out.println("xml: " + xml.toString());
out.print(xml.toString());
out.flush();
out.close();
<script type="text/javascript">
var line = 0;
function del(){
if(jQuery("#newDiv")){
jQuery("#newDiv").remove();
line = 0;
}
}
jQuery(document).ready(function(){
//文本框失去焦点时层消失
jQuery(document.body).click(function(){
del();
});
jQuery(document).keydown(function(){
// 38 上 40下 13 回车
if(jQuery("#newDiv")){
if(event.keyCode == 40){
jQuery("table tbody tr").eq(line)
.css("backgroundColor", "#377486")
.css("color", "white");
jQuery("table tbody tr").eq(line < 0 ? 0 : line - 1)
.css("backgroundColor", "white")
.css("color", "black");
line = (line == jQuery("table tbody tr").length ? 0 : line + 1);
}else if(event.keyCode == 38){
line = (line == 0 ? jQuery("table tbody tr").length : line - 1);
jQuery("table tbody tr").eq(line)
.css("backgroundColor", "#377486")
.css("color", "white");
jQuery("table tbody tr").eq(line > jQuery("table tbody tr").length ? 0 : line + 1)
.css("backgroundColor", "white")
.css("color", "black");
}else if(event.keyCode == 13){
jQuery("#keyword").val(jQuery("table tbody tr").eq(line - 1).find("td").eq(0).html());
del();
doSearch();
}
}
});
jQuery("#keyword").bind("propertychange", function(){
//if(event.keyCode != 38 || event.keyCode != 40 || event.keyCode != 13){
del();
var top = jQuery("#keyword").offset().top;
var left = jQuery("#keyword").offset().left;
var newDiv = jQuery("<div/>").width(jQuery("#keyword").width() + 6)
.css("position", "absolute")
.css("backgroundColor", "white")
.css("width", "301px")
.css("left", left)
.css("top", top + jQuery("#keyword").height())
.css("border", "1px solid BLACK")
.attr("id", "newDiv");
var table = jQuery("<table width='100%'/>")
.attr("cellpadding", "0")
.attr("cellspacing", "0");
jQuery.post("/servlet/GetHotKeywordAction", {key: jQuery("#keyword").val()}, function(xml){
jQuery(xml).find("results result").each(function(){
var key = jQuery(this).attr("key");
var count = jQuery(this).attr("count");
var tr = jQuery("<tr/>").css("cursor", "pointer").mouseout(function(){
jQuery(this).css("backgroundColor", "white").css("color", "black");
}).mouseover(function(){
jQuery(this).css("backgroundColor", "#377486").css("color", "white");
}).click(function(){
jQuery("#keyword").val(jQuery(this).find("td").eq(0).html());
del();
});
var td1 = jQuery("<td/>").html(key).css("fontSize", "12px")
.css("margin", "5 5 5 5");
var td2 = jQuery("<td/>").html("")
.attr("align", "right").css("fontSize", "12px")
.css("color", "green").css("margin", "5 5 5 5");
tr.append(td1).append(td2);
table.append(tr);
newDiv.append(table);
});
});
jQuery(document.body).append(newDiv);
if(jQuery("#keyword").val() == ""){
jQuery("#newDiv").remove();
}
// }
});
jQuery("#keyword").bind("input", function(){
del();
var top = jQuery("#keyword").offset().top;
var left = jQuery("#keyword").offset().left;
var newDiv = jQuery("<div/>").width(jQuery("#keyword").width() + 6)
.css("position", "absolute")
.css("backgroundColor", "white")
.css("width", "301px")
.css("left", left)
.css("top", top + jQuery("#keyword").height())
.css("border", "1px solid BLACK")
.attr("id", "newDiv");
var table = jQuery("<table width='100%'/>")
.attr("cellpadding", "0")
.attr("cellspacing", "0");
jQuery.post("/servlet/GetHotKeywordAction", {key: jQuery("#keyword").val()}, function(xml){
jQuery(xml).find("results result").each(function(){
var key = jQuery(this).attr("key");
var count = jQuery(this).attr("count");
var tr = jQuery("<tr/>").css("cursor", "pointer").mouseout(function(){
jQuery(this).css("backgroundColor", "white").css("color", "black");
}).mouseover(function(){
jQuery(this).css("backgroundColor", "#377486").css("color", "white");
}).click(function(){
jQuery("#keyword").val(jQuery(this).find("td").eq(0).html());
del();
});
var td1 = jQuery("<td/>").html(key).css("fontSize", "12px")
.css("margin", "5 5 5 5");
var td2 = jQuery("<td/>").html("")
.attr("align", "right").css("fontSize", "12px")
.css("color", "green").css("margin", "5 5 5 5");
tr.append(td1).append(td2);
table.append(tr);
newDiv.append(table);
});
});
jQuery(document.body).append(newDiv);
if(jQuery("#keyword").val() == ""){
jQuery("#newDiv").remove();
}
});
});
</script>
IE支持 onPropertyChange 火狐支持oninput
Firefox有个oninput事件效果和onPropertyChange一样,所以同时加上oninput和onPropertyChange问题就解决
action:
response.setContentType("text/xml;charset=utf-8");
request.setCharacterEncoding("utf-8");
PrintWriter out = response.getWriter();
String key = request.getParameter("key");
clsKeyWordViewBus keyWordViewBus = new clsKeyWordViewBus();
ArrayList<String> resultList = keyWordViewBus.getHotWord(key);
StringBuilder xml = new StringBuilder();
xml.append("<results>");
for(String s : resultList){
xml.append("<result key='" +s + "' count=''></result>");
}
xml.append("</results>");
//System.out.println("xml: " + xml.toString());
out.print(xml.toString());
out.flush();
out.close();
相关文章推荐
- 搜索建议(Searching Suggestion),已布置好样式
- 搜索建议(Searching Suggestion),已布置好样式
- 搜索建议(Seraching Suggestion),已布置好样式
- solr入门之搜索建议的拼音转换工具
- 搜索时的建议输入
- 谷歌搜索建议:比死亡更可怕
- 交互设计:关于搜索建议的两点小问题
- 类似百度搜索建议
- 搜索建议--AJAX (ASP.NET 异步完成)javascript 实现代码
- 谷歌中国恢复搜索建议功能
- 【百度地图API】如何使用suggestion--下拉列表方式的搜索建议
- 关于前端框架升级与全站样式替换的简单建议
- 类似于百度搜索,搜索关键字,下拉框显示,以及jQuery中添加删除class类,并给class类添加样式
- Elasticsearch suggester搜索建议初步
- 【百度地图API】如何使用suggestion--下拉列表方式的搜索建议
- 您对超人搜索有什么建议?
- 百度地图SDK-----百度地图在线建议查询,结合AutoCompleteTextView实现搜索下拉列表。
- 关于<input type="button" value="搜索">默认样式的清除
- ajax实现百度搜索建议