Page 86 - jQuery для начинающих
P. 86

— А в чём сила, брат?
                    — В аргументах



             По умолчанию, вы можете прямо из консоли вызвать метод fire() снова и снова, и будете
             получать один и тот же результат раз за разом. А можно задать поведение Callbacks через
             флаги:

                    —  once – все функции будут вызваны единожды (аналогично как в Deferred).
                    —  memory – сохранять значение с последнего вызова fire(), и скармливать его в
                       ново-зарегистрированные  функции  обратного  вызова,  и  лишь  потом
                       обрабатывает новое значение (в Deferred именно так).
                    —  unique – список функций обратного вызова фильтруется по уникальности
                    —  stopOnFalse  –  как  только  какая-нить  функция  вернёт  false,  процесс  запуска
                       остановится



             Наверное, будет лучше с примерами, вот once:


                    var C = $.Callbacks("once");
                    C.add(function(msg) { console.log(msg+" first") });

                    C.add(function(msg) { console.log(msg+" second") });
                    C.fire("Go");
                    C.fire("Again"); // не даст результата, только Go

                    >>>
                           Go first

                           Go second


             C memory посложнее, будьте внимательней:


                    var C = $.Callbacks("memory");
                    C.add(function(msg) { console.log(msg+" first") });

                    C.fire("Go");
                    C.add(function(msg) { console.log(msg+" second") });

                    C.fire("Again");
                    >>>
                           Go first

                           Go second // без флага, этой строчки не было бы
                           Again first
                           Again second



                                                                                                         86


                                                                                        www.trk.kg
   81   82   83   84   85   86   87   88   89   90   91