Latest web development tutorials

Метод jQuery.Callbacks ()

Jquery методы Разное Jquery методы Разное

примеров

Добавить функцию обратного вызова к списку $ .Callbacks

$ (Функция () { функция fn1 ( значение ) { оповещение ( значение );} функция Fn2 ( значение ) { fn1 ( "Fn2 говорит:" + значение); возврат ложь;} вар Обратные вызовы = $ Callbacks () ;. . обратные вызовы добавить ( fn1 ); // Вывод: Foo! Обратные вызовы. пожар ( "Foo!" ) ;. Callbacks добавить ( Fn2 !); // Вывод: бар, Fn2 говорит: бар! Обратные вызовы. пожар ( "Бар!" );})

Попробуйте »

Определение и использование

$ .Callbacks () Относится к списку обратного вызова многоцелевой объектов, предоставляя мощный способ управления правом обратного вызова функции столбца.

Совет: $ .Callbacks в Jquery для внутреннего использования, такие как .ajax, $ Отложенный и другие компоненты обеспечивают функции для базовой функциональности. Он также может быть использован в некоторых компонентах аналогичные функции, такие, как разрабатывать свои собственные подключаемые модули.


грамматика

$.Callbacks( flags )

参数 描述
flags 可选。 String类型 一个用空格标记分隔的可选列表,用来改变回调列表中的行为


примеров

Другие примеры

Вот .remove () для удаления конкретного обратного вызова из списка примеров обратного вызова

примеров

$ (Функция () { функция fn1 ( значение ) { оповещение ( значение );} функция Fn2 ( значение ) { fn1 ( "Fn2 говорит:" + значение); возврат ложь;} вар Обратные вызовы = $ Callbacks () ;. . обратные вызовы добавить ( fn1 ); // Вывод: Foo! Обратные вызовы. пожар ( "Foo!" ) ;. Callbacks добавить ( Fn2 !); // Вывод: бар, Fn2 говорит: бар! Обратные вызовы. пожар ( "Бар!" ) ;. Callbacks удалить ( Fn2 ); // Вывод только Foobar, Fn2 был удален. Обратные вызовы. пожар ( "Foobar" );})

Попробуйте »


Поддерживаемые параметр Flags

Параметр флагов составляет $ .Callbacks () является необязательным параметром, структура разделенных пробелами флагов отмечен дополнительный список, чтобы изменить поведение списка обратного вызова (например. $ .Callbacks ( 'Уникальный stopOnFalse')).
Доступны следующие флаги:

参数 描述
once 确保这个回调列表只执行一次
memory 缓存上一次fire时的参数值,当add()添加回调函数时,直接用上一次的参数值立刻调用新加入的回调函数
unique 确保一次只能添加一个回调,不会重复添加
stopOnFalse 某个回调函数返回false之后中断后面的回调函数

Вот пример $ .Callbacks ( "один раз") из

примеров

$ (Функция () { функция fn1 ( значение ) { оповещение ( значение );} функция Fn2 ( значение ) { fn1 ( "Fn2 говорит:" + значение); возврат ложь;} вар Обратные вызовы = $. Callbacks ( "После того, как" ) ;. Callbacks добавить ( fn1 ) ;. Callbacks огонь ( "Foo" ) ;. Callbacks добавить ( Fn2 ) ;. Callbacks огонь ( "Бар" ) ;. Callbacks удалить ( Fn2 ) ;. Callbacks огонь ( "Foobar" ); / * Только выход: Foo * / })

Попробуйте »

Вот пример $ .Callbacks ( "память") из

примеров

$ (Функция () { функция fn1 ( значение ) { оповещение ( значение );} функция Fn2 ( значение ) { fn1 ( "Fn2 говорит:" + значение); возврат ложь;} вар Обратные вызовы = $. Callbacks ( "Память" ) ;. Callbacks добавить ( fn1 ) ;. Callbacks огонь ( "Foo" ) ;. Callbacks добавить ( Fn2 ) ;. Callbacks огонь ( "Бар" ) ;. Callbacks удалить ( Fn2 ) ;. Callbacks огонь ( "Foobar" ); / * Вывод: Foo Fn2 говорит: Foo бар Fn2 говорит: бар Foobar * / })

Попробуйте »

Вот пример $ .Callbacks ( "уникальный") из

примеров

$ (Функция () { функция fn1 ( значение ) { оповещение ( значение );} функция Fn2 ( значение ) { fn1 ( "Fn2 говорит:" + значение); возврат ложь;} вар Обратные вызовы = $. Callbacks ( "Уникальный" ) ;. Callbacks добавить ( fn1 ) ;. Callbacks огонь ( "Foo" ) ;. Callbacks добавить ( fn1 ); // Повторное добавление Обратные вызовы. Добавить ( Fn2 ) ;. Callbacks огонь ( "Бар" ) ;. Callbacks удалить ( Fn2 ) ;. Callbacks огонь ( "Foobar" ); / * Вывод: Foo бар Fn2 говорит: бар Foobar * / })

Попробуйте »

Вот пример $ .Callbacks ( "stopOnFalse") из

примеров

$ (Функция () { функция fn1 ( значение ) { оповещение ( значение ); Возвращение ложь;} функция Fn2 ( значение ) { fn1 ( "Fn2 говорит:" значение + ); Возвращение ложь;} вар Обратные вызовы = $. Callbacks ( "StopOnFalse" ) ;. Callbacks добавить ( fn1 ) ;. Callbacks огонь ( "Foo" ) ;. Callbacks добавить ( Fn2 ) ;. Callbacks огонь ( "Бар" ) ;. Callbacks удалить ( Fn2 ) ;. Callbacks огонь ( "Foobar" ); / * Вывод: Foo бар Foobar * / })

Попробуйте »

$ .Callbacks () Поддерживает список из множества флагов (идентификации) не только один, есть кумулятивный эффект, как и "&&".
Вот пример $ .Callbacks ( 'уникальная память') из

примеров

$ (Функция () { функция fn1 ( значение ) { оповещение ( значение ); Возвращение ложь;} функция Fn2 ( значение ) { fn1 ( "Fn2 говорит:" значение + ); Возвращение ложь;} вар Обратные вызовы = $. Callbacks ( "Уникальная память" ) ;. Callbacks добавить ( fn1 ) ;. Callbacks огонь ( "Foo" ) ;. Callbacks добавить ( fn1 ); // Повторное добавление Обратные вызовы. Добавить ( Fn2 ) ;. Callbacks огонь ( "Бар" ) ;. Callbacks добавить ( Fn2 ) ;. Callbacks огонь ( "Баз" ) ;. Callbacks удалить ( Fn2 ) ;. Callbacks огонь ( "Foobar" ); / * Вывод: Foo Fn2 говорит: Foo бар Fn2 говорит: бар Баз Fn2 говорит: Баз Foobar * / })

Попробуйте »

$ .Callbacks Метод также могут быть разделены, например:

примеров

$ (Функция () { функция fn1 ( значение ) { оповещение ( значение );} вар ... Обратных вызовов = $ Callbacks ( ), добавьте = обратные вызовы добавить, удалить = обратные вызовы удалить, огонь = обратные вызовы огонь ;. добавить ( fn1 ); Огонь ( "Привет мир" ); Удалить ( fn1 ); / * Выход: привет мир * / })

Попробуйте »


$ .Callbacks, $ .Deferred И Pub / Sub

Общая идея паб / к югу (рисунок наблюдателя) за слабой связи и эффективной связи для вашего приложения. Наблюдатели также известный как абонент, который указывает на наблюдаемый объект. Уведомить пользователя, когда происходит наблюдатель (издатель) событие.

Как $ .Callbacks (), чтобы создать компонент представления, только список функций обратного вызова, вы можете достичь Pub / Sub системы. В статье $ .Callbacks как очередь может быть сделана следующим образом, для достижения статьи публикации и подписки:

примеров

$ (Функция () { функция fn1 ( значение ) { оповещение ( значение ); Возвращение ложь;} функция Fn2 ( значение ) { fn1 ( "Fn2 говорит:" значение + ); Возвращение ложь;} вар темы = {} ;. JQuery тема = функция ( ID ) { вар обратных вызовов, метод, тема = ID && темы [ ID ]; Если (! Тема ) { Обратные вызовы. = JQuery Callbacks (); тема = { публикующие: обратные вызовы огонь, подписаться :. обратные вызовы добавить, отписать :. обратные вызовы удалить. }; Если ( ID ) { темы [ ID ] = Тема;} } возвращение тема;}; // абоненты $. Тема ( "MailArrived" ). Подписка ( fn1 ) ;. $ Тема ( "MailArrived" ). Подписка ( Fn2 ) ;. $ Тема ( "MailSent" ). Подписка ( fn1 ); // Издательство $. Тема ( "MailArrived" ). Публикация ( "Привет , мир!" ) ;. $ Тема ( "MailSent" ). Публикация ( "Woo! Почта!" ); / * Выход: привет мир Fn2 говорит: привет мир посватать почта * / !!!! })

Попробуйте »

Дальнейшее улучшение использования $ .Deferreds, вы можете быть уверены, что, когда конкретная задача выполнена (или решительность), издатель выпустил уведомление только подписчикам. Смотрите следующий пример кода:

примеров

$ (Функция () { функция fn1 ( значение ) { оповещение ( значение ); Возвращение ложь;} функция Fn2 ( значение ) { fn1 ( "Fn2 говорит:" значение + ); Возвращение ложь;} вар темы = {} ;. JQuery тема = функция ( ID ) { вар обратных вызовов, метод, тема = ID && темы [ ID ]; Если (! Тема ) { Обратные вызовы. = JQuery Callbacks (); тема = { публикующие: обратные вызовы огонь, подписаться :. обратные вызовы добавить, отписать :. обратные вызовы удалить. }; Если ( ID ) { темы [ ID ] = Тема;} } возвращение тема;}; // Подписаться mailArrived уведомление $. Тема ( "MailArrived" ). Подписка ( fn1 ); // Создание нового объекта альтернативной задержки $ .Deferreds вар . DFD = $ Отложенный (); // определить новую статью (не сразу отпустить) вар тема = $. Тема ( "MailArrived" ); // Когда задержка будет принято, объявление абонентам DFD. Done ( тема. публиковать ); / * Здесь будет передан обратно задержки сообщения абонента принимается, можно интегрировать сложные процедуры (например, в ожидании вызова Ajax завершен), так что на самом деле только один раз выпустили сообщения. * / // Завершено. DFD. решить ( был освобожден!" );})

Попробуйте »


Jquery методы Разное Jquery методы Разное