非常教程

jQuery参考手册

jQuery.when() 方法

jQuery.when() 方法

jQuery.when() 方法

jQuery.when()  方法

jQuery 杂项方法

实例

一个参数传递给 $.when() 被受理,执行回调函数

$(function () { $.when( { testing: 123 } ).done( function(x) { alert(x.testing); } /* alerts "123" */ ); })

尝试一下 »

定义和用法

$.when() 函数提供一种方法来执行一个或多个对象的回调函数。

提示:如果向 jQuery.when 传入一个延迟对象,那么会返回它的 Promise 对象(延迟方法的一个子集)。 可以继续绑定 Promise 对象的其它方法,例如, defered.then 。当延迟对象已经被受理(resolved) 或被拒绝(rejected)(通常是由创建延迟对象的最初代码执行的),那么就会调用相应的回调函数。


语法

$.when( deferreds )

参数 描述
deferreds Deferred类型 一个或多个延迟对象,或者普通的JavaScript对象


jQuery.when()  方法

更多实例


如果你不传递任何参数,jQuery.when()将返回一个resolved(受理)状态的 promise 对象。

实例

不传递任何参数,执行回调函数

[mycode3 type="javascript"] $(function () { $.when().then(function( x ) { alert( "I fired immediately" ); }); }) [/mycode3]

尝试一下 »

在多个延迟对象传递给jQuery.when() 的情况下,该方法返回一个新的"宿主"延迟对象,当所有的延迟对 象被受理(resolve)时,该方法才会受理它的宿主延迟对象。当其中有一个延迟对象被拒绝(rejected)时, 该方法就会拒绝它的宿主延迟对象。当宿主对象被受理时,doneCallbacks(受理回调)将被执行。

实例

传入多个延迟对象

[mycode3 type="javascript"] $(function () { var d1 = $.Deferred(); var d2 = $.Deferred(); $.when( d1, d2 ).done(function ( v1, v2 ) { alert( v1 ); // "Fish" alert( v2 ); // "Pizza" }); d1.resolve( "Fish" ); d2.resolve( "Pizza" ); }) [/mycode3]

尝试一下 »

如果没有值传递给延迟对象的受理(resolved)事件,那么相应的doneCallback参数 将是undefined。 如果传递给延迟对象的受理(resolved)事件为单个的值, 相应的参数 将保留那个值。 在传递给延迟对象的解决(resolved)事件为为多个值的情况下, 相应的 参数将是这些值组成的数组。

实例

传入多个不同类型的延迟对象

[mycode3 type="javascript"] $(function () { var d1 = $.Deferred(); var d2 = $.Deferred(); var d3 = $.Deferred(); $.when( d1, d2, d3 ).done(function ( v1, v2, v3 ) { alert( v1 ); // v1 is undefined alert( v2 ); // v2 is "abc" alert( v3 ); // v3 is an array [ 1, 2, 3, 4, 5 ] }); d1.resolve(); d2.resolve( "abc" ); d3.resolve( 1, 2, 3, 4, 5 ); }) [/mycode3]

尝试一下 »

在多个延迟的情况下,如果延迟对象之一被拒绝(rejected),jQuery.when()触发立即 调用 "宿主" 延迟对象的 failCallbacks 回调函数。

实例

多个延迟对象之一被拒绝时调用failCallbacks 回调函数

[mycode3 type="javascript"] $(function () { $.when($.ajax("/page1.php"), $.ajax("/page2.php")).then(function(data, textStatus, jqXHR){ alert(jqXHR.status); }, function(obj){ alert(obj.statusText); }); }) [/mycode3]

尝试一下 »


jQuery.when()  方法

jQuery 杂项方法

jQuery.when() 方法

jQuery目录

1.jQuery 教程
2.jQuery 简介
3.jQuery 安装
4.jQuery 语法
5.jQuery 选择器
6.jQuery 效果 – 隐藏和显示
7.jQuery 事件
8.jQuery 效果 – 滑动
9.jQuery 效果 – 淡入淡出
10.jQuery 链
11.jQuery Callback 方法
12.jQuery 效果 – 停止动画
13.jQuery 效果 – 动画
14.jQuery 遍历 – 后代
15.jQuery 遍历 – 祖先
16.jQuery 遍历
17.jQuery 尺寸
18.jQuery css() 方法
19.jQuery 获取并设置 CSS 类
20.jQuery 删除元素
21.jQuery 添加元素
22.jQuery 设置内容和属性
23.jQuery 获取内容和属性
24.jQuery 实例
25.jQuery noConflict() 方法
26.jQuery – AJAX get() 和 post() 方法
27.jQuery – AJAX load() 方法
28.jQuery AJAX 简介
29.jQuery 遍历 – 过滤
30.jQuery 遍历 – 同胞(siblings)
31.jQuery :even 选择器
32.jQuery :last 选择器
33.jQuery :first 选择器
34.jQuery 多个元素选择器
35.jQuery element 选择器
36.jQuery 多个类选择器
37.jQuery .class 选择器
38.jQuery #id 选择器
39.jQuery * 选择器
40.jQuery :only-child 选择器
41.jQuery :nth-last-of-type() 选择器
42.jQuery :nth-of-type() 选择器
43.jQuery :nth-last-child() 选择器
44.jQuery :nth-child() 选择器
45.jQuery :last-of-type 选择器
46.jQuery :last-child 选择器
47.jQuery :first-of-type 选择器
48.jQuery :first-child 选择器
49.jQuery :odd 选择器
50.jQuery :header 选择器
51.jQuery :not() 选择器
52.jQuery :lt() 选择器
53.jQuery :gt() 选择器
54.jQuery :eq() 选择器
55.jQuery element ~ siblings 选择器
56.jQuery element + next 选择器
57.jQuery 父后代选择器
58.jQuery parent > child 选择器
59.jQuery :only-of-type 选择器
60.jQuery :lang() 选择器
61.jQuery :root 选择器
62.jQuery :visible 选择器
63.jQuery :hidden 选择器
64.jQuery :parent 选择器
65.jQuery :empty 选择器
66.jQuery :has() 选择器
67.jQuery :contains() 选择器
68.jQuery :focus 选择器
69.jQuery :animated 选择器
70.jQuery :input 选择器
71.jQuery [attribute*=value] 选择器
72.jQuery [attribute~=value] 选择器
73.jQuery [attribute^=value] 选择器
74.jQuery [attribute|=value] 选择器
75.jQuery [attribute$=value] 选择器
76.jQuery [attribute!=value] 选择器
77.jQuery [attribute=value] 选择器
78.jQuery [attribute] 选择器
79.jQuery :image 选择器
80.jQuery :button 选择器
81.jQuery :reset 选择器
82.jQuery :submit 选择器
83.jQuery :checkbox 选择器
84.jQuery :radio 选择器
85.jQuery :password 选择器
86.jQuery :text 选择器
87.jQuery dblclick() 方法
88.jQuery click() 方法
89.jQuery change() 方法
90.jQuery blur() 方法
91.jQuery bind() 方法
92.jQuery :checked 选择器
93.jQuery :selected 选择器
94.jQuery :disabled 选择器
95.jQuery :enabled 选择器
96.jQuery :file 选择器
97.jQuery event.namespace 属性
98.jQuery event.isPropagationStopped() 方法
99.jQuery event.isImmediatePropagationStopped() 方法
100.jQuery event.isDefaultPrevented() 方法