Quote
コレは何か?コールバック集めてまとめて発火させたり削除したりダブって登録されたりしないようにしてくれるやつ。ちょっと便利なオブザーバーだけど、jQuery内部のコードでオブザーバー的な動きをしていたのがこれにより抽象化された風。詳しくは以下を見るべき。(この記事を書いてる時点ではjQuery1.7 beta2)
Demystifying jQuery 1.7′s $.Callbacks
自分はこういう単純なオブザーバーをつくるとき、$({}) を作ってこいつにカスタムイベントをbindしてtriggerしてみたいなことをしてたので、同じようなことをしてた人はあーそういうやつねと思うかもしれないです。こいつが登場して便利になるのは、「より細かくコールバックを管理できるようになった」ってことかと思います。とりあえずこれいままで出来なかったよねっていうのでちょっと思いついたやつが以下。ちょっと試しただけなので雑です。
$.when done でアニメ
wootボタンを押すと右下行ったり左上行ったりする。で、doneでおわったってログだすけど、ボタン押しただけ出ちゃう。deferredは便利だが、細かいコールバックの制御はできない。resolveするかrejectするかのみ。それにアニメは常にresolveされるので細かいことしようとするとかなりややこい。
アニメで単純コールバック
なにいってんのstopで止めればいいだけじゃんといわれればまぁそう。でも次のサンプルでやっていることはできない。
$.Callbacksでコールバック管理
このサンプルはボタンが2個ある。右のボタンは、コールバックを空にするやつ。アニメ中にこれを押すと、予約したコールバックを空にする。これによって、アニメは止まらないけどコールバックだけを削除することができた。前の2つの例だと、予約したコールバックをキャンセルすることができない。(というかやろうと思えばできるけどそうするとこういう$.Callbacksみたいなやつを自作するハメになる)
たぶんこんな感じでコールバックを自由に細かくいじるために使うんだと思われる。コールバックが破棄できるようになったりしたっていう理解でいいのではないかと思う。
-
edo liked this
-
kzkztommy reblogged this from hamalog
-
currentdir liked this
-
isora1988 liked this
-
isora1988 reblogged this from hamalog and added:
Takazudo hamalog: jQuery1.7で追加された$.Callbacks
-
atm09td reblogged this from fingaholic and added:
コレは何か?コールバック集めてまとめて発火させたり削除したりダブって登録されたりしないようにしてくれるやつ。ちょっと便利なオブザーバーだけど、jQuery内部のコードでオブザーバー的な動きをしていたのがこれにより抽象化された風。詳しくは以下を...
-
fingaholic reblogged this from hamalog
-
yoshi001 reblogged this from hamalog
-
syoichi liked this
-
hamalog posted this