いくつかの特別な処理を行うために、ダブルキープレス(たとえばChar Tの場合)をトラップできるようにしたいと考えています。キープレスは、2つの別個のプレスとして解釈されないように十分速くダブルクリックのように。 どのように私はこれを達成することができますか?javascriptでダブルキープレスをトラップする方法は?
答えて
キーがヒットしたら、時間をメモしてください。その後、あなたがキーがヒットした時にと最後にと書いた時間と比較してください。
差がしきい値内にある場合は、それを2倍と見なしてください。さもなければ、そうしないでください。ラフ例:
var delta = 500;
var lastKeypressTime = 0;
function KeyHandler(event)
{
if (String.fromCharCode(event.charCode).toUpperCase()) == 'T')
{
var thisKeypressTime = new Date();
if (thisKeypressTime - lastKeypressTime <= delta)
{
doDoubleKeypress();
// optional - if we'd rather not detect a triple-press
// as a second double-press, reset the timestamp
thisKeypressTime = 0;
}
lastKeypressTime = thisKeypressTime;
}
}
がキープレスイベントが発生したときにtrueに設定し、変数(おそらくfirst_press
)を持っており、設定時間後にfalseに変数をリセットしますタイマーを起動し(ただし、高速あなたが欲しいですキーを押す)。
あなたのkeypressイベントでは、その変数が真であれば、ダブル・プレスがあります。
例:
var first_press = false;
function key_press() {
if(first_press) {
// they have already clicked once, we have a double
do_double_press();
first_press = false;
} else {
// this is their first key press
first_press = true;
// if they don't click again in half a second, reset
window.setTimeout(function() { first_press = false; }, 500);
}
}
そして、ユーザーが変更できる設定可能な永続的な値として「半秒」を設定することができます。ユーザビリティのルール! – montrealist
-1これは*押された*キーごとに機能します。 –
私は彼のためのドロップインソリューションを提供しようとしていませんでした。彼に一般的な考えを示すだけです。 –
- 1. Androidサービスクラスでキーボードイベントをトラップする方法は?
- 2. sun.net.ftp.FtpClientでftpの成功/失敗をトラップする方法は?
- 3. WordでDrag/Dropイベントをトラップする方法は?
- 4. jQueryを使用してバックスペースキーをトラップする方法は?
- 5. .NET(Excelアドイン)でOutOfMemoryExceptionをトラップする方法
- 6. Selenium 2 Pythonでポップアップをトラップする方法
- 7. Bashスクリプトで終了コードをトラップする方法
- 8. PowerShellで未処理のエラーをトラップする方法
- 9. Pythonでエラーをトラップする
- 10. バックグラウンドプロセスでSIGINTをトラップする
- 11. 異なるIPにSNMPトラップを送信する方法
- 12. inputdlg()でユーザをトラップするには
- 13. ブラウザでDOMを構築する方法(IEまたはFF)、またはJavaScriptがオブジェクト階層をトラップする方法
- 14. ポップアップコントロールからキーボード入力をトラップする方法
- 15. ココアのグローバルkeydown/keyupイベントをトラップする方法
- 16. パラメータ化クエリでMDXエラーをトラップするより良い方法を探す
- 17. ウィンドウの最小化イベントをトラップする方法はありますか?
- 18. サウンドファイルのロードイベントの完了をトラップする方法はありますか?
- 19. JNIから呼び出されたコードでSystem.exit()をトラップする方法
- 20. javascriptでキーコンボをハイジャックする方法は?
- 21. JSPでJavaScriptをエスケープする方法は?
- 22. JavaScriptでリクエストをキャプチャする方法は?
- 23. javascriptでコンテンツをドロップダウンする方法は?
- 24. javascriptでヌルクッキーをチェックする方法は?
- 25. JavaScriptでリストをソートする方法は?
- 26. javascriptでイオンアイテムスライドスライドをトリガーする方法は?
- 27. 私はUpdatePanelトラップにトラップされています
- 28. ウィンドウでhttp/https要求をトラップする
- 29. WOW64でHANDLE作成をトラップする
- 30. javascriptでランダムにループする方法は?
このソリューションは、Ctrlキーを使用しています。彼は彼がそれを必要としているとは言わない(私には意味があるが)。 –
** @ Josh Stodola:** HA!どのように私が読んで慎重に表示... "チャーT"を見た、 "Ctrl T"を読む...おっと! – Shog9
ありがとうございました! – ak3nat0n