javascript - 使用键码(箭头)停止窗口滚动,event.preventDefault() 不起作用?

标签 javascript jquery

我构建了一个自动提示,键码可以在列表中上下导航,但它会滚动窗口。我已经尝试过 event.preventDefault() 但它并没有阻止它。有任何想法吗?这是我尝试过的:

$(document).keyup(function(e) {
e.returnValue=false;
e.preventDefault();
switch(e.keyCode) {
    case 40:
        suggestionLine++;
                $('#suggestionLine_'+suggestionLine).focus();
                break;
// etc...

谢谢!

最佳答案

您需要keydown,而不是keyup

为什么?当您按下该键时,您试图阻止的默认操作会立即发生(现在就试试吧!)。这允许像 autorepeat 这样的事情,它会在发送单个 keyup 事件之前发送多个 keydown 事件。当 keyup 被触发时,滚动已经发生。

关于javascript - 使用键码(箭头)停止窗口滚动,event.preventDefault() 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14611694/

相关文章:

php - 是什么导致服务器出现 60,000 毫秒的延迟

javascript - 修改与 jQuery X-Editable 库一起使用时 Select2 下拉选择的输出

javascript - 标题的jquery按钮值

javascript - 如何将数据从 html 发送到 node.js

javascript - 使用 Kohana 和 JavaScript 进行跨源请求

javascript - 基于 JS/HTML5 Webkit 的移动开发的轻量级 UI 框架,具有良好的列表性能

jquery - IE 7 中的 CSS 问题

javascript - 无法在其他ajax中调用ajax

jquery - 在 PickMeUp 插件中突出显示日期数组

jquery - 使用 jquery 在输入中添加标签