[高分求助] 求一套较复杂的页面操控程序,参与讨论的内容有借鉴意义,则都有分数相赠,谢谢。
我知道java可以实现较复杂的页面控制,我自己也可以写一些简单的鼠标操控代码。但最近打算写一个完全用键盘操作的小程序,实在是有点头晕,特请各位高手出手相助。分数大大的有,(*^__^*) 嘻嘻……
需求是这样的:
有一个3行10列的html表格,暂时称作表格1,
--------------------------------------------------
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 |
--------------------------------------------------
1、所有数字所在表格的初始背景为白色;
2、按一次小键盘的 + 键或者小键盘的 Enter 键,可以依次移动焦点,顺序升序(1 -> 30),每次移动一格;
3、按一次小键盘的 - 键,可以依次移动焦点,顺序降序(30 -> 1),每次移动一格;
4、当焦点停留在某个数字所在表格时,按一次小键盘的 1 键,表格背景变成红色;按一次小键盘的 2 键,表格背景变成黄色;按一次小键盘的 3 键,表格背景变成蓝色;按一次小键盘的 * 键,表格背景变成白色(初始颜色);
5、按一次小键盘的 / 键,弹出一个提示框框,选是,整个table的背景还原成初始的白色;选否,不进行任何操作;
6、用鼠标可以随意控制焦点位置,例如1~10已经有颜色了,用鼠标左键选择3,然后可以进行步骤4的操作;
另有一个统计表格,暂时称作表格2,用来统计表格1的结果,
--------------------------------------------------
红 | 0
黄 | 0
蓝 | 0
--------------------------------------------------
1、当表格1有3个红色时,则红色后面的数字显示3,依次类推,黄和蓝的显示情况;
2、按一次小键盘的 / 键(与表格1联动),弹出一个提示框框,选是,统计数字归0;选否,不进行任何操作;
只要参与讨论的内容有借鉴意义,则都有分数相赠,回答最好的,另外赠送100分,(*^__^*) 嘻嘻……
------解决方案--------------------提供一个思路,具体请实现一下。
//对每一个td设定id,把键盘事件加到onclick事件中去
function addEvent()
{
var objList = new Array(1,2,3,4,5,.....30);
for(i=0;i++;i <objList.length)
{
var obj= objList[i];
obj.attachEvent( "onclick ", "KeyOnclick ");
}
}
//这儿写键盘事件的功能
function KeyOnclick()
{
//function.....
}
}
//html
//定义每一个对象
<table>
<tr> <td id=1> 1 </td> .... </tr>
<tr> <td id=11> 11 </td> .... </tr>
<tr> <td id=21> 21 </td> .... </tr>
</table>
------解决方案--------------------因为一次发送的字数限制 后来把td的属性都写到js里面了减少字数..... 又删了个方法 第一次发的时候忘了测试 再发一个带注释的纯脚本段
<script language= "javascript ">
var boxs = new Array(); //元素缓存
var focusarray = 0; //指针
//数量
var cred = 0;
var cyellow = 0;
var cblue = 0;
//数量显示容器
var ored = document.getElementById( "sred ");
var oyellow = document.getElementById( "syellow ");
var oblue = document.getElementById( "sblue ");
//按键事件
function document.onkeypress()
{
switch(window.event.keyCode)
{
case 45:
arrmove(-1);break; // "- "
case 43:
case 13: // "+ " 和 Enter
arrmove(1);break;
case 47: // "/ "
if(confirm( "重置全部? "))
for(var i=0;i <boxs.length;i++)
changeColor(i,0);
break;
case 42:// "* "
changeColor(focusarray,0);break;
case 49:// "1 "
changeColor(focusarray,1);break;
case