2011-07-30 18 views
0

私はカスタムオートコンプリート入力を作成しようとしています(私はjquery UIオートコンプリートについて知っていますが、シンプルなものを書くことにしました)。すべてうまくいった、私はすべての一般的なもの - データを.phpスクリプトに送り、提案を受け取った。次に、マウスのクリックで要素を選択できるようになりました。また、「下向き矢印」、「上向き矢印」、「入力」キーを使ってナビゲーションを行いました。しかし、私は「上向き矢印キーを押し続ける」ナビゲーション(フリックスルー)を可能にする野心に立ち往生しています。私の入力のハンドラは、keyupイベントを聞きます。鍵保留を維持しているので、私が望むのはkeypressイベントです。しかし、keypressは、下向き矢印\上向き矢印を含まない印刷可能な文字に対してのみ機能します。だから問題は:どのように私はkeypressなしで動作させることができますか、何らかの形でこのイベントの維持されたキーをオーバーライドできますか?カスタムオートコンプリート矢印コントロール

皆様、ありがとうございました。 keypressは印刷可能な文字でのみ起動されることを意図していますが、最新のOpera & Firefox 5はサポートしています。しかし、Chrome(おそらくはSafariはかなり似ている)はありませんが、​​は必要な結果を出します。

答えて

2

keypressの難しさを克服する方法がない場合は、このようなものを試してみてください。これは疑似コードです。私はすべてのキーコードの検出をしませんでした。

var keyStop 
onkeydown = function(){ 
    keyStop = setInterval(function(){scrollDown()},250); 
} 
onkeyup = function(){ 
    clearInterval(keyStop); 
} 
+0

第2の関数はonkeyupである必要がありますか? – madfriend

+0

@Alex Yeah c/pエラーです。これが役立つことを願っています。 – qw3n

0

あなたには、いくつかの理由で、あなたの開発に捕まってしまった場合は、私がカスタマイズしやすい軽量なjQueryプラグインである、Better Autocompleteをお勧めします。