我构建了一个自动提示,键码可以在列表中上下导航,但它会滚动窗口。我已经尝试过 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/