Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.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
调用函数时,JQuery fadeIn()回调在动画完成之前执行_Jquery - Fatal编程技术网

调用函数时,JQuery fadeIn()回调在动画完成之前执行

调用函数时,JQuery fadeIn()回调在动画完成之前执行,jquery,Jquery,我在网站上看到了很多关于这一点的帖子,但大多数都是针对试图制作多个动画的人,我尝试了一些解决方案,并将其缩小到这个范围,我有一个框我正试图淡出,出于某种原因,如果我将函数直接放入代码中,它就会工作: $(document).ready(function(){ $('#div3').fadeIn(1000, function(){alert('Done')}); }); 但是,如果我调用一个执行完全相同操作的函数,它会在动画开始之前发出警报: $(document).ready(func

我在网站上看到了很多关于这一点的帖子,但大多数都是针对试图制作多个动画的人,我尝试了一些解决方案,并将其缩小到这个范围,我有一个框我正试图淡出,出于某种原因,如果我将函数直接放入代码中,它就会工作:

$(document).ready(function(){
    $('#div3').fadeIn(1000, function(){alert('Done')});
});
但是,如果我调用一个执行完全相同操作的函数,它会在动画开始之前发出警报:

$(document).ready(function(){
    $('#div3').fadeIn(1000, test());

    function test(){
        alert("Done");
    };
});
我尝试过将test()函数放入(document).ready()并从中取出,结果相同。我不知道是什么原因造成的,这可能是我错过的一些小东西,但就我的一生而言,我看不到它。请告知


谢谢

您正在立即调用该函数,而不是引用它。去掉括号

$('#div3').fadeIn(1000, test);

您正在那里调用一个函数测试,而是传递函数引用,它应该可以工作

 $(document).ready(function(){
   $('#div3').fadeIn(1000, test);
                    //--------^--here remove the parenthesis
   function test(){
     alert("Done");
   };
 });

这是可行的,但我认为在调用函数时总是必须将()放在末尾,这很奇怪。你总是添加括号来调用函数,但在这种情况下,你不想调用函数,你想引用它以便稍后调用它,然后去掉括号,否则会立即调用它。