当使用上下箭头时,停止光标移动

Stop cursor movement when using up and down arrow

本文关键字:光标 移动 上下      更新时间:2023-09-26

我有一个显示结果的实时搜索输入,并允许您在结果弹出时使用向上和向下箭头,但我想防止光标在使用向上和向下箭头时向左或向右移动。我想不明白。我试过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;
    }

谢谢!

你是在绑定keyup还是keydown?如果你使用keydown,你可以防止它,如果你使用keyup,事件已经发生。

你可以这样做…

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