jQuery等待事件完成

时间:2011-04-06 07:54:29

标签: jquery

当我有一个功能时,我怎么能意识到

$('.anyclass').slideToggle(1000);

程序是否在slideToggle完成后解释了函数test()?

如果我这样写:

$('.anyclass').slideToggle(1000);
test();

... test()在slideToggle完成之前执行。

我怎么能意识到?我不太了解jQuery ......

感谢您的帮助!此致,弗洛里安

编辑:结果你可以在这里看到:www.virtual-swiss-hornets.ch

5 个答案:

答案 0 :(得分:17)

您可以在jQuery函数中添加callback函数。

$('.anyclass').slideToggle(1000,function() { test(); });

幻灯片完成后,该功能才会激活。

答案 1 :(得分:3)

我认为slideToggle应接受第二个参数callback,如下所示:

$('.anyclass').slideToggle(1000, function() {/* do anything after animation is complete */});

实际上,对于您的特定情况,它很简单:

$('.anyclass').slideToggle(1000, test); 

答案 2 :(得分:2)

如果您只需要激活一次,请查看when done

的jquery API
$.when(('.anyclass').slideToggle(1000)).done(function() { test(); });

答案 3 :(得分:1)

您需要的是使用回调函数

http://api.jquery.com/slideToggle/

.slideToggle([duration],[callback])

   ('.anyclass').slideToggle(1000, function() { test(); });

答案 4 :(得分:0)

最好的方法应该是这个

$('#result').append($("<div class='message'>Result Sucess</div>")).slideToggle(5000,function(){$(this).remove()});