jQuery.proxy( function, context )返回类型:Function
描述:取用一个函数,返回一个将始终具有特定上下文的新函数。
-
增补版本:1.4jQuery.proxy( function, context )
-
function类型:Function()要改变其上下文的函数。
-
context类型:PlainObject函数的上下文(
this
)应该被设置为的对象。
-
-
增补版本:1.4jQuery.proxy( context, name )
-
context类型:PlainObject函数的上下文应该被设置为的对象。
-
name类型:String要改变其上下文的函数的名称(必须是
context
对象的一个属性)。
-
-
增补版本:1.6jQuery.proxy( function, context [, additionalArguments ] )
-
function类型:Function()要改变其上下文的函数。
-
context类型:PlainObject函数的上下文(
this
)应该被设置为的对象。 -
additionalArguments类型:Anything传递给在
function
参数中引用的函数的任意数目的参数。
-
-
增补版本:1.6jQuery.proxy( context, name [, additionalArguments ] )
-
context类型:PlainObject函数的上下文应该被设置为的对象。
-
name类型:String要改变其上下文的函数的名称(必须是
context
对象的一个属性)。 -
additionalArguments类型:Anything传递给在
name
参数中命名的函数的任意数目的参数。
-
对于要把事件处理函数附加到一个元素上,而其上下文指回到一个不同对象的情况,此方法特别有用。此外,jQuery确保了哪怕你绑定了从jQuery.proxy()
返回的函数,你依然能够通过传入原来的函数来解绑正确的函数。
然而,要小心,jQuery的事件绑定子系统为每个事件处理函数赋了一个独一无二的值,为了在它用来指定要解绑的函数时跟踪它。由jQuery.proxy()
代表的函数被事件子系统视为一个单独的函数,哪怕它用来绑定不同的上下文。为了避免解绑错误的处理函数,请使用唯一性事件处理空间来绑定和解绑(例如,"click.myproxy1"
)而不是在解绑时指定代理函数。
自从jQuery 1.6以来
,可以向$.proxy
提供任意数目的额外函数,它们将被传递给那个将要改变上下文的函数。
自从jQuery 1.9以来,如果context
是null
或undefined
,代理函数将用调用代理的相同this
对象调用它。从而允许$.proxy()
被用来应用函数的部分参数,而不需要改变上下文。
示例:
使用“function, context”签名改变绑定到一个点击事件的处理函数上下文。在第一次点击之后解绑第一个处理函数。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
|
演示:
利用“context, function, name”签名硬性指定函数的上下文。在第一次点击之后解绑处理函数。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
|
演示:
改变绑定到点击事件的处理函数的上下文。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
|