6

オートサジェストを作成しました。キーコードはリスト内を上下に移動するように機能しますが、ウィンドウがスクロールします。event.preventDefault()を試しましたが、停止していません。何か案は?これは私が試したことです:

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

ありがとうございました!

4

1 に答える 1

12

必要keydownではなく、必要keyupです。

なんで?防止しようとしているデフォルトの操作は、キーを押すとすぐに実行されます(今すぐ試してください!)。これによりkeydown、単一のイベントを送信する前に複数のイベントを送信する自動リピートなどが可能になりますkeyup。解雇されるまでkeyupに、スクロールはすでに行われています。

于 2013-01-30T20:01:27.377 に答える