
Habrasocietyを再び歓迎します。 1週間前、 jQuery.keyboardをレイアウトしました 。 いくつかの欠点、未実現のアイデアがあり、膨大な数の提案と肯定的なレビューにより、私はすぐに新しいバージョンを書くようになりました
すぐにサポートとデバッグをしてくれたgreedykidに感謝します。 ライブラリが好きなら、彼もプラスを投げることができます(そして、そうすべきです)。
誤ったkeyCode'amiのバグが個人的に私の問題であることが判明したため、私はエンジンを完全に書き直しました。これにより、ライブラリをより機能的かつ拡張可能にする機会が与えられました。 また、以前のバージョンで見つかったバグが修正されました。 今回は、「私の意見では、すべてが非常にシンプルで明白」というフレーズが消えないのではないかと心配しています。そのため、ライブラリの多くの機能について説明します(ただし、何かを忘れることは間違いありません)。
それにもかかわらず、私が疑う余地のないプラスと考えるもの、彼女は以前のバージョンと同じくらいシンプルなままでいる能力を保持しました
例
$. keyboard ( '( letters )+( numbers )' ,
function ( event ) {
// event[0].keyCode — letterKeyCode
// event[1].keyCode — numberKeyCode
}
);
取扱説明書
そのため、オブジェクトにキーボードイベントを掛ける方法。
$ ( obj ). keyboard ( /*args*/ )
除き
$ ( obj ). keyboard ( /*args*/ )
以前のバージョンの
$ ( obj ). keyboard ( /*args*/ )
は、次のようなイベントをハングさせる機能を追加しました:
$ . keyboard ( /*args*/ )
$ . keyboard ( /*args*/ )
、これは
$ ( document ). keyboard ( /*args*/ )
と同等
$ ( document ). keyboard ( /*args*/ )
$ ( document ). keyboard ( /*args*/ )
引数
$. keyboard ( object defaultConfig )
$. keyboard ( object defaultConfig )
-ドキュメント全体のデフォルト設定を設定します
$. keyboard ( string keys ,[ object config ,] function fn )
$. keyboard ( string keys ,[ object config ,] function fn )
-特定のキーストロークのためにオブジェクトに関数を掛ける
$. keyboard ( string keys )
$. keyboard ( string keys )
-特定のキーストロークの機能を削除する
キーは引き続き配列にすることができますが、このアプローチはすでに廃止されています
キーの構文:
この行は、無制限の数のグループに分割され、コンマで区切られます:
« group1 , group2 , group3 »
。 これらのキーグループごとにイベントがキューに入れられます。
各グループの構文は次のとおりです。インデックスはスペースまたはプラスで区切られます。 インデックスがスペースで区切られている場合、順序は重要ではありません。 プラスの場合-順序が重要です。 スペースとプラスを1つのグループに
« key1 + key2 + key3 , key4 key5 key6 »
ことは不可能です:
« key1 + key2 + key3 , key4 key5 key6 »
各インデックスは、特定のキーの名前( インデックステーブルを参照 )、またはリターンコード、Set'omまたはVariantsのいずれかです。
セット(またはキーのセット)は、キーのグループに似たキーのセットです。 現在、 8つのデフォルトセットがあります 。 開始インデックスと最終インデックスを指定して、ギャップを設定することもできます。 たとえば、(ak)。 ダイヤルは括弧内に示されており、ダイヤルキーのいずれかを意味します:
« key1 +( a - c )+( numbers ) »
。
バリアント-Setに似ており、IndexesおよびSet'ovの行に手動で直接アセンブルされます。 角括弧で囲まれ、その部分は記号「 | 」で区切られています ":
« [ shift | alt | ( letters )] »
« [ shift | alt | ( letters )] »
« [ shift | alt | ( letters )] »
は、シフト、alt、または任意の文字を意味します。
プラグイン設定
プラグイン設定-(現時点では)3つのプロパティで構成されるオブジェクト(ここにデフォルト値があります):
settings = {
strict : true ,
event : 'keydown' ,
preventDefault : false
}
(Strict == true)-組み合わせで指定されたものを除き、キーが押された場合、この組み合わせは機能しないことを意味します
(イベント)-アクションが実行されるイベントを意味します。 キーダウンとキーアップは現在利用可能ですが、必要に応じて追加できます。
(preventDefault)-対応するイベントのメソッドを呼び出すことを意味します。 よく、すべてのデフォルトイベントがキーダウンイベント中に発生することを考慮する価値があります。したがって、この場合は最も期待どおりに機能します。
機能
2つの引数が関数に渡されます:
func ( events , bind )
。 これは現在のjQueryオブジェクトを参照します
イベントには、押されたキーのイベントの配列があります(リクエスト内にあるもののみ)。たとえば、呼び出されたとき
$.( '( letters )+shift' , function ( e , bind ) {})
by
e [0]. keyCode
e [0]. keyCode
を押すと、どの文字が押されたかがわかります。 Bindには次の情報が含まれます(実際、
bind.keys.group
トリガーされたグループのシリアル番号を除き、すべての情報が必要になる可能性は低いです。たとえば、
$ . keyboard ( 'alt, shift' )
を押したとき
« alt »
bind.keys.group
は0になります):
bind = {
cfg : {}, // ,
func : function // — ( )
keys : {} //
}
既知の問題
1.おそらくpreventDefaultは一部の場所で機能します(ブラウザに依存しますか?)
2. null keyCode'amiの未解決の問題は 、おそらく、誤って構成されたキーボードドライバーで表示されます。統計から判断すると、非常にまれです(これまでのところ、jQuery.keyboard開発者でのみ見つかりました)。 彼女について何か知っている人-私たちはあなたをトピックに招待します
その他
1.用語についてはまだ決めていませんので、独自のオプションを提供してください。
2.マイナーなインターフェースの変更は可能ですが、新しいバージョンが以前のバージョンと後方互換性があるように(少なくとも適切な設定を使用して)あらゆる努力をします。
3.これはバージョン0.2.0、つまり2番目のベータ版です
4.希望と提案は受け入れられます。