私はかなりの検索をしましたが、満足できる解決策を見つけることができませんでした。私は誰かが助けることを望む。Javascriptコントロールコントロールキーがマウスアップ時に表示される
私はjQueryを使っていますが、何千ものJavascriptも書いています。だから "純粋な" javascriptの解決策はちょうど良いです。
mouseupイベントでコントロールキーが物理的に押されているかどうかを確認しようとしています。それでおしまい;他の前提条件はありません。誰もが信頼性の高い、クロスブラウザを行う方法を知っていますか?
私はキーが押されて離されたときに注目することにより、状態変数でこれを保存しようとしました:
// BEGIN store control key status in hash_state
$().bind('keydown','ctrl',function(arg_obj_e){
hash_state.sw_ctrldn = true;
console.debug(hash_state.sw_ctrldn);
});
$().bind('keyup','ctrl',function(arg_obj_e){
hash_state.sw_ctrldn = false;
console.debug(hash_state.sw_ctrldn);
});
// END store control key status in hash_state
しかし、これは実際に動作しません。あなたがfirebugを使ってこれをテストしてコンソールを見ると、自動リピートが起こっているように見え、その値はトグルします。
私は有益な何かがそこにあるかどうかを確認するためのmouseupイベントを視察したが、無駄に:
var debugEvent = function(arg_obj_e){
var str = '';
for (var attr in arg_obj_e){
str += attr + ': ' + arg_obj_e[attr] + '\n';
}
console.debug(str);
}
任意の助けいただければ幸いです。
うわー、私はjQueryがキーイベントをサポートしているかどうかはわかりませんでした。私はそれのドキュメントを見つけることができません。また、$()。bind()(空のjQuery)が動作するのでしょうか、それとも単に省略形ですか?もしそうなら、$(文書)にバインドされていますか? – eyelidlessness
@eyelidlessness:その種のバインディングは、js-hotkeysという名前のプラグインからのものです。 – CMS