株式会社はてなでは日々、開発者が持ち回りでひとつの技術トピックについて発表を行っており、公開可能なものについては、その内容を音声と動画で公開しています。
1月19日に行われました技術発表会の内容を撮影した動画ファイルを公開いたしました。内容は以下のとおりです。
| テーマ | KeyTypeListener.js 勉強会 |
|---|---|
| 発表者 | d:id:secondlife |
また以下のリンクから、高画質版のファイルをダウンロードの後にご覧いただくことも可能です。(ビデオiPodでもご覧いただけます。)
http://hatelabo.jp/js/KeyTypeListener.js
タイプされたキーに対するアクションを行う Observer 的なライブラリ
じゃあいらなくない?でも
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);
指定したキーが押されたときの関数を追加します。element を指定しなかった場合は document に connect されます。追加した関数が返ります。
追加した関数は、false を返す、もしくは例外 KeyTypeListener.StopKeyChain を発生させない限り連鎖します。
addKeybind('a', function(ev) {}); // 実行される addKeybind('a', function(ev) { return false;}); // 実行される addKeybind('a', function(ev) {}); // 前回 false が返ったので、実行されない
var cfunc = addKeybind('c', function(ev) { alert('c')}); var cfunc2 = addKeybind('c', function(ev) { alert('c2')}); removeKeybind('c', cfunc); // c を押すと alert('c2') だけ実行される
指定した要素でキーが叩かれても無視します
指定したキーにひも付いている関数全部を取得します