使用jquery取消选择表中的行

时间:2011-03-28 15:46:00

标签: jquery

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);
    }
}

在这里,如果我按下回车键,它应该带我到另一页但由于某种原因我得到一个未定义的错误。我做错了什么?

2 个答案:

答案 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个事件,documentthis在事件调用中传递的内容

var did = $(this).data('docID');

您应该能够将$(this)替换为current以获得所需的效果

var did = current.data('docID');