【发布时间】:2013-09-20 10:34:49
【问题描述】:
我在我的一个项目中使用 jquery。我有一个场景,我必须将键盘事件添加到表格的 td 单元格中才能在其中上下移动。我能够使用以下代码实现这一点。
这是我的代码:
<script type="text/javascript">
var tds = jQuery("#myTable td");
tds.bind('keyup', function(event){
var key = event.which;
moveSelection(key, jQuery(this), tds);
event.preventDefault();
});
function moveSelection(key, current_td, all_tds){
var index = parseInt(current_td.attr("id"));
if (key == 13) { //Enter Key
current_td.click();
} else if(key == 38) { //Page Up Key
if(all_tds[index - 1]){
all_tds[index - 1].focus();
}
} else if(key == 40) { //Page Down Key
if(index < all_tds.length){
var next_index = index + 1;
if(next_index < all_tds.length){
all_tds[index + 1].focus();
}
}
}
}
如果页面没有滚动条,我可以在 td 单元格中移动。但是当页面有滚动条时,当我使用 PageUp/PageDown 键时会发生两件事。
- 我的页面根据按下的键向上/向下滚动。()
- 相应的 td 选择根据按下的键移动/向上。
在第一种情况下,可能是因为事件绑定到页面以及我的表 tds。我该如何防止这种情况。当我处理我的桌子时,我不希望我的页面滚动。我尝试了很多但失败了。在这里寻求帮助。
任何帮助都非常感谢..在此先感谢...
【问题讨论】:
标签: jquery