求一个树,要用键盘控制 这个前些日子有人提问过用event.keyCode判断就可以了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我不久前写的:)<html><head><title>键盘控制菜单</title><style type="text/css">input {border:1px solid #fff; background:#fff; }input {star : expression(onmouseover=function(){this.style.backgroundColor="#eee"},onmouseout=function(){this.style.backgroundColor="#fff"})}.in40 {width:40px;}.in80 {width:80px;}.in120 {width:120px;}.in200 {width:200px;}</style><script defer>var root=["menu1","menu2","menu3"];var menu1=["menu1.1","menu1.2"];var menu2=["menu2.1","menu2.2"];var menu3=["menu3.1","menu3.2"];var obj=document.getElementsByTagName("input");var urlpath = "";for(var i=0;i<obj.length;i++){ if(obj[i].input){ obj[i].focus(); break; }}document.onkeydown=function(){ try{ if(event.keyCode==13){ window.open(urlpath); } if(event.keycode == 27){ window.closed(); } if(event.keyCode==40){//下 if(event.srcElement.submenu){ if(document.getElementById(event.srcElement.submenu).style.display=="block"){ var arr=eval(event.srcElement.name); document.getElementsByName(arr[0])[0].focus(); }else{ var parentMenu=event.srcElement.parentMenu; var selfName=event.srcElement.name; var arr=eval(event.srcElement.parentMenu); var n; for(var i=0;i<arr.length;i++){ if(arr[i]==selfName){ n=i; break; } } if(n!=arr.length-1){ document.getElementsByName(arr[n+1])[0].focus(); } } }else{ var parentMenu=event.srcElement.parentMenu; var selfName=event.srcElement.name; var arr=eval(parentMenu); var n; for(var i=0;i<arr.length;i++){ if(arr[i]==selfName){ n=i; break; } } if(n!=arr.length-1){ document.getElementsByName(arr[n+1])[0].focus(); }else{ selfName=parentMenu; parentMenu=document.getElementsByName(parentMenu)[0].parentMenu; var arr=eval(parentMenu); var n; for(var i=0;i<arr.length;i++){ if(arr[i]==selfName){ n=i; break; } } if(n!=arr.length-1){ document.getElementsByName(arr[n+1])[0].focus(); } } } } else if(event.keyCode==38){//上 var parentMenu=event.srcElement.parentMenu; var selfName=event.srcElement.name; var arr=eval(event.srcElement.parentMenu); var n; for(var i=0;i<arr.length;i++){ if(arr[i]==selfName){ n=i; break; } } if(n>0){ var preMenu=document.getElementsByName(arr[n-1])[0]; if(preMenu.submenu){ var preSubDiv=document.getElementById(preMenu.submenu); if(preSubDiv.style.display=="none"){ preMenu.focus(); }else{ var preSubArr=eval(arr[n-1]); var focusMenu=document.getElementsByName(preSubArr[preSubArr.length-1])[0]; focusMenu.focus(); } }else{ preMenu.focus(); } }else{ if(parentMenu!="root"){ document.getElementsByName(parentMenu)[0].focus(); } } } else if(event.keyCode==37){//左 if(event.srcElement.submenu){ document.getElementById(event.srcElement.submenu).style.display="none"; } } else if(event.keyCode==39){//右 if(event.srcElement.submenu){ document.getElementById(event.srcElement.submenu).style.display="block"; } } }catch(e){ }}function url(obj){urlpath =obj.value;}</script></head><body onload="document.all.menu1.focus()">键盘控制菜单演示:<div style="position:absolute;left:10px;top:50px"><input type=text name="menu1" class="in200" submenu="submenu1" parentMenu="root" value="http://www.google.com" onfocus="this.select();url(this)" size="40" readonly="readonly"><br><div id="submenu1" style="display:none"><input type=text name="menu1.1" parentMenu="menu1" class="in80" value=" 菜单1.1" onfocus="this.select();url(this)" readonly="readonly"><br/><input type=text name="menu1.2" parentMenu="menu1" class="in80" value=" 菜单1.2" onfocus="this.select();url(this)" readonly="readonly"></div><input type=text name="menu2" class="in200" submenu="submenu2" parentMenu="root" value="http://www.google.com" onfocus="this.select();url(this)" size="40" readonly="readonly"><br><div id="submenu2" style="display:none"><input type=text name="menu2.1" parentMenu="menu2" class="in80" value=" 菜单2.1" onfocus="this.select();url(this)" readonly="readonly"><br><input type=text name="menu2.2" parentMenu="menu2" class="in80" value=" 菜单2.2" onfocus="this.select();url(this)" readonly="readonly"></div><input type=text name="menu3" class="in200" submenu="submenu3" parentMenu="root" value="http://www.google.com" onfocus="this.select();url(this)" size="40" readonly="readonly"><div id="submenu3" style="display:none"><input type=text name="menu3.1" parentMenu="menu3" class="in80" value=" 菜单3.1" onfocus="this.select();url(this)" readonly="readonly"><br><input type=text name="menu3.2" parentMenu="menu3" class="in80" value=" 菜单3.2" onfocus="this.select();url(this)" readonly="readonly"></div></div></body></html> 谢谢了,不过一定要用text吗?用其他的不行吗?请教lihui_shine(浪尖賞花) tantaiyizu(痴情客)有例子的话你可以发出来看看,要是可以用的话我可以加分 想问一下以下的JS代码为什么不能在FIREFOX中识别? extjs4.0 grid分页问题(1个小时后结贴) js怎样调用系统文件夹选择 高手进来啊,关于script标签的写法 小白问题 highcharts中的json数据转换问题请教 with对象中的一个疑惑 急求!frame信息互传功能!高手请进,在线等待! 如何得到所在文本框内所选到的字符。详细请进入---》》》 求助将字符类型转化成时间类型的怎么写啊?急!! 我晕了,JS脚本老是提示没有对象 大家帮忙看下啊!!
<html>
<head>
<title>键盘控制菜单</title>
<style type="text/css">
input {border:1px solid #fff; background:#fff; }
input {star : expression(
onmouseover=function(){this.style.backgroundColor="#eee"},
onmouseout=function(){this.style.backgroundColor="#fff"})}
.in40 {width:40px;}
.in80 {width:80px;}
.in120 {width:120px;}
.in200 {width:200px;}
</style>
<script defer>
var root=["menu1","menu2","menu3"];
var menu1=["menu1.1","menu1.2"];
var menu2=["menu2.1","menu2.2"];
var menu3=["menu3.1","menu3.2"];
var obj=document.getElementsByTagName("input");
var urlpath = "";
for(var i=0;i<obj.length;i++){
if(obj[i].input){
obj[i].focus();
break;
}
}
document.onkeydown=function(){
try{
if(event.keyCode==13){
window.open(urlpath);
}
if(event.keycode == 27){
window.closed();
}
if(event.keyCode==40){//下
if(event.srcElement.submenu){
if(document.getElementById(event.srcElement.submenu).style.display=="block"){
var arr=eval(event.srcElement.name);
document.getElementsByName(arr[0])[0].focus();
}else{
var parentMenu=event.srcElement.parentMenu;
var selfName=event.srcElement.name;
var arr=eval(event.srcElement.parentMenu);
var n;
for(var i=0;i<arr.length;i++){
if(arr[i]==selfName){
n=i;
break;
}
}
if(n!=arr.length-1){
document.getElementsByName(arr[n+1])[0].focus();
}
}
}else{
var parentMenu=event.srcElement.parentMenu;
var selfName=event.srcElement.name;
var arr=eval(parentMenu);
var n;
for(var i=0;i<arr.length;i++){
if(arr[i]==selfName){
n=i;
break;
}
}
if(n!=arr.length-1){
document.getElementsByName(arr[n+1])[0].focus();
}else{
selfName=parentMenu;
parentMenu=document.getElementsByName(parentMenu)[0].parentMenu;
var arr=eval(parentMenu);
var n;
for(var i=0;i<arr.length;i++){
if(arr[i]==selfName){
n=i;
break;
}
}
if(n!=arr.length-1){
document.getElementsByName(arr[n+1])[0].focus();
}
}
}
}
else if(event.keyCode==38){//上
var parentMenu=event.srcElement.parentMenu;
var selfName=event.srcElement.name;
var arr=eval(event.srcElement.parentMenu);
var n;
for(var i=0;i<arr.length;i++){
if(arr[i]==selfName){
n=i;
break;
}
}
if(n>0){
var preMenu=document.getElementsByName(arr[n-1])[0];
if(preMenu.submenu){
var preSubDiv=document.getElementById(preMenu.submenu);
if(preSubDiv.style.display=="none"){
preMenu.focus();
}else{
var preSubArr=eval(arr[n-1]);
var focusMenu=document.getElementsByName(preSubArr[preSubArr.length-1])[0];
focusMenu.focus();
}
}else{
preMenu.focus();
}
}else{
if(parentMenu!="root"){
document.getElementsByName(parentMenu)[0].focus();
}
}
}
else if(event.keyCode==37){//左
if(event.srcElement.submenu){
document.getElementById(event.srcElement.submenu).style.display="none";
}
}
else if(event.keyCode==39){//右
if(event.srcElement.submenu){
document.getElementById(event.srcElement.submenu).style.display="block";
}
}
}catch(e){
}
}function url(obj){
urlpath =obj.value;
}
</script>
</head>
<body onload="document.all.menu1.focus()">
键盘控制菜单演示:
<div style="position:absolute;left:10px;top:50px">
<input type=text name="menu1" class="in200" submenu="submenu1" parentMenu="root" value="http://www.google.com" onfocus="this.select();url(this)" size="40" readonly="readonly"><br>
<div id="submenu1" style="display:none">
<input type=text name="menu1.1" parentMenu="menu1" class="in80" value=" 菜单1.1" onfocus="this.select();url(this)" readonly="readonly"><br/>
<input type=text name="menu1.2" parentMenu="menu1" class="in80" value=" 菜单1.2" onfocus="this.select();url(this)" readonly="readonly">
</div>
<input type=text name="menu2" class="in200" submenu="submenu2" parentMenu="root" value="http://www.google.com" onfocus="this.select();url(this)" size="40" readonly="readonly"><br>
<div id="submenu2" style="display:none">
<input type=text name="menu2.1" parentMenu="menu2" class="in80" value=" 菜单2.1" onfocus="this.select();url(this)" readonly="readonly"><br>
<input type=text name="menu2.2" parentMenu="menu2" class="in80" value=" 菜单2.2" onfocus="this.select();url(this)" readonly="readonly">
</div>
<input type=text name="menu3" class="in200" submenu="submenu3" parentMenu="root" value="http://www.google.com" onfocus="this.select();url(this)" size="40" readonly="readonly">
<div id="submenu3" style="display:none">
<input type=text name="menu3.1" parentMenu="menu3" class="in80" value=" 菜单3.1" onfocus="this.select();url(this)" readonly="readonly"><br>
<input type=text name="menu3.2" parentMenu="menu3" class="in80" value=" 菜单3.2" onfocus="this.select();url(this)" readonly="readonly">
</div>
</div>
</body>
</html>
用其他的不行吗?
请教lihui_shine(浪尖賞花)
有例子的话你可以发出来看看,要是可以用的话我可以加分