在this code中,如果按shift +向下键,则选择多行,如果按下向上键,则取消选择。但如果我按shift + uparrow,则只会取消选择。
通常使用向上和向下键,我可以上下导航。
例如:如果表有10行并且使用shift + downarrow,我选择3行,然后按下向下箭头到第6行。从这里我应该能够再次选择行,取消选择之前选择的行。
在我的代码中,您可以看到
if(code == 13) { //Enter keycode
alert(did);
if(did != undefined){
window.open('keyboard.php?q=' + did);
}
}
在这里,如果我按下回车键,它应该带我到另一页但由于某种原因我得到一个未定义的错误。我做错了什么?
答案 0 :(得分:0)
您是否尝试过使用typeof(did)!='undefined'
您的错误在这里:
if (event.shiftKey) {
selected = selected.add(current);
}
应该不是事件。除了按Enter键时找不到页面,但该事件有效。
http://jsfiddle.net/hKZqS/61/ - >工作小提琴
答案 1 :(得分:0)
问题似乎是脚本如何设置did
$(document).keyup(function(e) {
var current = rows.filter(".ui-selected"),
selected = $(); //an empty jQuery object
...
case 13:
var code = (e.keyCode ? e.keyCode : e.which);
var did = current.data('docID');
...
}
因为您正在keyUp
上观看document
个事件,document
是this
在事件调用中传递的内容
var did = $(this).data('docID');
您应该能够将$(this)
替换为current
以获得所需的效果
var did = current.data('docID');