Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/454.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript “完整”论点的目的是什么?_Javascript_Jquery_Animation - Fatal编程技术网

Javascript “完整”论点的目的是什么?

Javascript “完整”论点的目的是什么?,javascript,jquery,animation,Javascript,Jquery,Animation,一些jQuery动画方法采用一个称为complete的参数,该参数是动画完成后要调用的函数。例如: $(obj).slideUp(duration, easing, complete()); 这与在下面的动画之后调用complete有什么不同 $(obj).slideUp(duration, easing) .complete(); 区别在于,在第二种情况下,在动画启动后立即调用complete,而在动画结束时将其作为回调触发器传递 动画实际上可以是异步的,因此javascript在启动动画

一些jQuery动画方法采用一个称为
complete
的参数,该参数是动画完成后要调用的函数。例如:

$(obj).slideUp(duration, easing, complete());
这与在下面的动画之后调用
complete
有什么不同

$(obj).slideUp(duration, easing)
.complete();

区别在于,在第二种情况下,在动画启动后立即调用
complete
,而在动画结束时将其作为回调触发器传递

动画实际上可以是异步的,因此javascript在启动动画后继续执行,因此在
$(obj)之后立即调用
complete()
不保证在动画完成后,仅在动画启动后执行
complete
调用

应该是

$(obj).slideUp(duration, easing, complete);
事实上,在第一种情况下,您甚至在动画开始之前调用
complete
函数

最后,请注意第二个例子似乎是错误的:

$(obj).slideUp(duration, easing)
.complete();
这将调用
slideUp
与调用
complete
链接起来,但是jquery对象没有
complete
方法。可能是:

$(obj).slideUp(duration, easing);
complete();
事实上,这是之前编辑的问题

$(obj).slideUp(duration, easing, complete());
这是错误的。这是在调用
slideUp
之前调用
complete

$(obj).slideUp(duration, easing);
complete();
这将执行
slideUp
,然后立即调用
complete
。调用
complete
时,
slideUp
动画可能尚未(事实上肯定不会)完成

$(obj).slideUp(duration, easing, function () {
    alert('Complete!');
});

// or

$(obj).slideUp(duration, easing, complete);
                                     // ^^ look ma, no () !

这就是你应该如何使用它。“完成!”只有在
slideUp
动画完成后才会发出警报。

不应该是
$(obj)。slideUp(持续时间、放松、函数(){Complete()})
这是完全相同的。我记得它通常会立即运行,除非您将其包装到函数中。除非您通过编写
complete()
而不是只传递
complete
名称来调用它。不客气:),但请查看我的上一次编辑。此外,如果我的答案对你有帮助,你可以自由地投票表决,并/或接受它作为正确答案。
$(obj).slideUp(duration, easing, function () {
    alert('Complete!');
});

// or

$(obj).slideUp(duration, easing, complete);
                                     // ^^ look ma, no () !