6

当一个函数在 JQuery 中被链接时,操作的顺序是什么?

示例 1

$(selector).fun1(val,{fun2(){ }}

示例 2

$(selecter).fun1().fun2().fun3() 
4

3 回答 3

8

从左到右。fun3()在 的结果(=返回值)上运行,在 的结果fun2()fun2()运行fun1()

这种链接可以在 JQuery 中完成,因为每个可链接函数都返回调用它的对象/元素。

所以在执行后$(selector).fun1()返回$(selector)元素。fun2()从返回的元素调用,依此类推。

于 2010-02-05T12:57:26.653 回答
6

在这个例子中:

$(selector).fun1(val,{fun2(){ }}

函数一的第二个参数是回调函数。这意味着fun1执行THEN fun2执行。

在这个例子中:

$(selecter).fun1().fun2().fun3()

如果所有功能都有持续时间,例如动画,它们就会尽快启动。否则它们按顺序执行fun1, fun2, fun3

因此,对于动画,fun1fun2fun3是 3 个同时重叠的动画,但对于其他同步操作,它们只是按顺序发生。

于 2010-02-05T13:00:35.587 回答
0
  1. 使用“回调”功能。您将 fun2 作为参数传递给 fun1,然后 fun1 在完成后调用 fun2。
  2. 这是 jQuery 的一个非常聪明的特性,jQuery 的大多数方法都返回调用该方法的原始对象,因此您可以在该返回的对象上调用另一个方法。顺序与写入的顺序相同。
于 2010-02-05T12:58:28.557 回答