Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.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 - Fatal编程技术网

调用函数的Javascript顺序

调用函数的Javascript顺序,javascript,jquery,Javascript,Jquery,嗨,我对编程还是相当陌生,我还没有机会完全理解Java或Javascript——我所知道的唯一编程语言,但我正在努力理解Javascript 我面临的是,有时候我不明白javascript何时调用我创建的函数。我为jQuery创建了一个小插件: 该插件是非常容易的图像设置在彼此的顶部使用绝对位置。然后我拍摄第一张图像并将z指数设置为100,然后拍摄下一张图像并将其z指数设置为50。之后,我再次拍摄第一张图像并将其淡入0不透明度,然后调用回调函数,将第一张图像的z指数设置为0,将其淡入1不透明度,

嗨,我对编程还是相当陌生,我还没有机会完全理解Java或Javascript——我所知道的唯一编程语言,但我正在努力理解Javascript

我面临的是,有时候我不明白javascript何时调用我创建的函数。我为jQuery创建了一个小插件:

该插件是非常容易的图像设置在彼此的顶部使用绝对位置。然后我拍摄第一张图像并将z指数设置为100,然后拍摄下一张图像并将其z指数设置为50。之后,我再次拍摄第一张图像并将其淡入0不透明度,然后调用回调函数,将第一张图像的z指数设置为0,将其淡入1不透明度,将下一张图像的z指数设置为100

在这个孔处理完成后,变量第一个被设置为下一个元素。这就是我的问题所在。如果我在回调函数中首先将变量设置为下一个img,那么插件工作正常,一切正常,但是如果我在回调函数之外执行此操作,那么脚本在每个图像上运行一次,并且必须在第一个图像淡出时重新开始,我会看到背景。如果在回调函数中将第一个图像设置为next,则不会发生这种情况


有人能解释为什么会发生这种情况,以及与什么主题相关,以便我能更好地阅读和理解发生的情况。

您正在经历由异步函数引起的行为

jQuery动画函数,如
fadeTo
异步执行,这意味着该函数可以在调用后的任何时间完成。如果按顺序调用两个异步函数

asynch1();
asynch2();
代码的行为可能会有所不同,因为无法保证
asynch1
将在
asynch2
之前执行

这就是回调的目的。您可以在中传递一个函数,该函数将在异步函数完成后运行

当你这样做的时候

$first.css({
    'z-index': 0
}).fadeTo(50, 1);
$next.css({
    'z-index': 100
});
$first = $next;
没有办法预测首先会发生什么

如果改用回调函数

$first.css({
  'z-index': 0
}).fadeTo(50, 1, function() {
  $next.css({
    'z-index': 100
  });
  $first = $next;
});

您知道,淡入淡出动画完成后,将设置
$next
css。

您应该在小提琴中放置完全限定的URL,以便图像显示(http://...)我找不到上传图片的地方,所以我想这是不可能的。我会再次检查并更正我的错误。谢谢,您无法上载-您必须指向您自己服务器上的副本:(