我在我的一个项目中使用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键时会发生两件事。
在第一种情况下,可能是因为事件被绑定到页面以及我的表tds。我怎么能阻止这个。当我处理我的桌子时,我不希望我的页面滚动。我尝试了很多但失败了。在这里寻求帮助。
任何帮助都非常感谢..提前致谢...
答案 0 :(得分:0)
尝试在每个键句柄处添加“return false”。 或者这一个:
if(event.stopPropagation) {
event.stopPropagation(); // standard browsers
} else {
event.cancelBubble = true; // IE
}