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