1月19日の技術勉強会
1月19日に行われました技術発表会の内容を撮影した動画ファイルを公開いたしました。内容は以下のとおりです。
テーマ | KeyTypeListener.js 勉強会 |
---|---|
発表者 | d:id:secondlife |
動画・音声ファイル
動画
また以下のリンクから、高画質版のファイルをダウンロードの後にご覧いただくことも可能です。(ビデオiPodでもご覧いただけます。)
音声
KeyTypeListener.js
http://hatelabo.jp/js/KeyTypeListener.js
タイプされたキーに対するアクションを行う Observer 的なライブラリ
- MochiKit を使っている
- はてなアンテナ・ブックマの j/k で移動 みたいなのをどこでも誰でもお手軽に
- 実際に使われているアプリとか
- はてなグループのプレゼンテーションモード
- http://lowreal.net/blog/2007/01/18/1 (undocument なのに!)
- ライセンス
どんなときに便利なの?
じゃあいらなくない?でも
- 削除したい
- 特定の要素のみにキーマッピングりたい
- 特定の要素は無視したい
- input type='text' な要素とか…
- チェインで繋げたい/チェインを解除したい
- ctrl とか alt とかを楽に扱いたい
デモ
http://rails2u.com/misc/key_event_listener.html
addKeybind('a', function(ev) { log('a')}); addKeybind('a', function(ev) { log('a!!');}, $('loglog')); addKeybind('B', function(ev) { log('B')}); addKeybind('B', function(ev) { log('B!!'); return false;}, $('loglog')); addKeybind('ctrl-x', function(ev) { log('!!!!!!!!!')}); addKeybind('ctrl-alt-o', function() { log('????????') }); cancelKeybind($('cancel')); var cfunc = addKeybind('c', function(ev) { log('c')}); var cfunc2 = addKeybind('c', function(ev) { log('c2')}); removeKeybind('c', cfunc);
関数一覧
addKeybind(key, func[, element = document])
指定したキーが押されたときの関数を追加します。element を指定しなかった場合は document に connect されます。追加した関数が返ります。
追加した関数は、false を返す、もしくは例外 KeyTypeListener.StopKeyChain を発生させない限り連鎖します。
addKeybind('a', function(ev) {}); // 実行される addKeybind('a', function(ev) { return false;}); // 実行される addKeybind('a', function(ev) {}); // 前回 false が返ったので、実行されない
removeKeybind(key, func[, element = document])
var cfunc = addKeybind('c', function(ev) { alert('c')}); var cfunc2 = addKeybind('c', function(ev) { alert('c2')}); removeKeybind('c', cfunc); // c を押すと alert('c2') だけ実行される
removeKeybindAll(key[, element = document])
cancelKeybind(element)
指定した要素でキーが叩かれても無視します
getBoundKeybindFunctions(key[, element = document])
指定したキーにひも付いている関数全部を取得します
その他
作った人
- id:motemen (基本部分の実装)
- id:secondlife (その他)