使用向上和向下箭头时停止光标移动

时间:2011-11-12 23:00:08

标签: javascript jquery

我有一个显示结果的实时搜索输入,并允许您在结果弹出时使用向上和向下箭头,但我想在使用向上和向下箭头时阻止光标向左或向右移动。我无法弄清楚这一点。我试了e.preventDefault()没有运气。这是我尝试过的:

    if(e.which == 40){

        e.preventDefault();

        current = results.find('li.hover');
        current.removeClass();
        var next = current.next('li');

        if(next.length == 0){
            next = current.parent().parent().parent().next().find('li:first');

            /* Go back to the top */
            if(next.length == 0){
                next = results.find('li:first');
            }
        }

        next.addClass('hover');
        return false;
    }

谢谢!

2 个答案:

答案 0 :(得分:14)

你绑定这个onkeyup还是keydown?如果你正在使用keydown,你可以阻止它,如果你使用keyup,事件已经发生。否则e.preventDefault()应该正常工作。

答案 1 :(得分:0)

你可以做类似...

$('#content').on('keydown', function(event) {
    var key = event.originalEvent.key;
    if (key == 'ArrowDown' || key == 'ArrowUp') {
        event.preventDefault();
    }
});

$('#content').on('keyup', function(event) {
    // do stuff
});