Life goes on

何かJavaScriptとかVimとかMacとかに関係してそうな深淵から覗かれる者

gatekeeper.jsなるものを作った

https://github.com/Layzie/gatekeeper.js

これだけ見ると何のこっちゃ?と思いますが。Vanilla.js用かつスマホブラウザ用のevent delegate専用ライブラリです。

今の案件で必要なんでCoffeeScriptで作ってみました。と、言っても一からオリジナルという訳ではなくVimeoの中の人が作ったgator.jsというライブラリのソースを参考に、モバイルブラウザにいらなそうな部分削ったり、趣味に合わない部分を変更したり…という事してます。READMEにも書いてますが。

一番悩んだ点は…これライセンス表記とかどうすんの?って所でした。ここに一応gator.jsをベースにしてるっていうの書いて、元がApache ライセンスだったんで踏襲してたりしますが。

最終的には、CoffeeScriptからの派生プロジェクトのLiveScriptとかを参考にしました。

forkしちゃえばまあ…という感じでしょうけど、コードは参考にしつつ、別言語(?)に移植して名前が違うとかいう場合はこれで良いんだろうか。ちょっと心配ですな。

使い方自体はほとんどjQueryとかと変わらずに

Gk(document).on('click', '.hoge a', function(e) { console.log(e.innerHTML); });

みたいな感じです。gator.jsのドキュメントとほぼ変わらないです。(GatorがGkになってるくらい) 一応、スマホで見れるデモはついてます。カッコ悪いけど。あと、テスト作りたいけど、どうしよう。ブランチは作ってあるけど何もしてないわ…。

名前の由来は、まあ親のDOMでイベントの門番みたいなもんだなーといって安易に付けました。S○NYの工作員とは関係がな…うわなにをするやめろ。

リポジトリ作った後にググってみたんですが、どうやらパスワードフォーム関係のJavaScriptのライブラリが既にあったりして、名前決める前に調べりゃ良かった…と若干の後悔をしたまま公開しました。

ニーズとしては非常にニッチなんじゃないかと思うのですが、ご紹介まで。(jQueryとかzepto.jsとかあれば、delegate付いてくるし)