jQuery回调对象

导语 jQuery向开发者提供了外部接口调用,但是$ Callbacks()模块的开发目的是为了给内部$ ajax() 和 $ Deferred()模块提供统一的基本功能组件。它可以用来作为类似基础定义的新组件的功能。jQuery Callbacks是jquer

jQuery向开发者提供了外部接口调用,但是$.Callbacks()模块的开发目的是为了给内部$.ajax() 和 $.Deferred()模块提供统一的基本功能组件。它可以用来作为类似基础定义的新组件的功能。

jQuery.Callbacks是jquery在1.7版本之后加入的,是从1.6版中的_Deferred对象中抽离的,主要用来进行函数队列的add、remove、fire、lock等操作,并提供once、memory、unique、stopOnFalse四个option进行一些特殊的控制。

这个函数常见的应用场景是事件触发机制,也就是设计模式中的观察者模式的发布、订阅机制,目前Callbacks对象用于queue、ajax、Deferred对象中。
 

Ajax模块

  1. ajax: function(url, options) { 
  2.   //省略代码 
  3.   deferred = jQuery.Deferred(), 
  4.   completeDeferred = jQuery.Callbacks("once memory"
  5.     .............. 

不难发现jQuery.Callbacks还提供“once memory”等参数用来处理:

   ☑  once: 确保这个回调列表只执行( .fire() )一次(像一个递延 Deferred)。

   ☑  memory: 保持以前的值,将添加到这个列表的后面的最新的值立即执行调用任何回调 (像一个递延 Deferred)。

   ☑  unique: 确保一次只能添加一个回调(所以在列表中没有重复的回调)。

   ☑  stopOnFalse: 当一个回调返回false 时中断调用。

  1. var callbacks = $.Callbacks('once'); 
  2.  
  3. callbacks.add(function() { 
  4.   alert('a'); 
  5. }) 
  6.  
  7. callbacks.add(function() { 
  8.   alert('b'); 
  9. }) 
  10.  
  11. callbacks.fire(); //输出结果: 'a' 'b' 
  12. callbacks.fire(); //未执行 

once的作用是使callback队列只执行一次。
 

http://www.aseoe.com/ true jQuery回调对象 http://www.aseoe.com/show-13-521-1.html report 1551.5 jQuery向开发者提供了外部接口调用,但是$ Callbacks()模块的开发目的是为了给内部$ ajax() 和 $ Deferred()模块提供统一的基本功能组件。它可以用来作为类似基础定义的新组件的功能。jQuery Callbacks是jquer
TAG:jquery 回调
本站欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果
转载请注明: 文章转载自:爱思资源网 http://www.aseoe.com/show-13-521-1.html
[ 扫一扫,在手机上阅读 ]

[前端插件推荐] Plugin

1 2 3 4
  • jQuery实现逐字逐句显示插件l-by-l.min.js
  • jQuery带方向感知的鼠标滑过图片边框特效插件
  • jQuery HotKeys监听键盘按下事件keydown插件
  • 响应式无限轮播jQuery旋转木马插件
响应式无限轮播jQuery旋转木马插件
web前端开发
爱思资源网 Copyright 2012-2014 Www.Aseoe.Com All rights reserved.(晋ICP备13001436号-1)