jQuery等待事件完成

9

当我有一个函数时,如何实现这一点

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

程序在slideToggle完成后执行函数test()吗?

如果我这样写:

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

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

我该怎么实现?我不太懂jQuery...

谢谢你的帮助!祝好,Florian

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

5个回答

17

您可以在jQuery函数中添加一个回调函数

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

该函数仅在幻灯片完成后触发。


4
我认为slideToggle应该接受第二个参数callback,像这样:

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

针对您的特定情况,实际上非常容易:

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

2
如果您只需要这个功能执行一次,请查看jQuery API的when done
$.when(('.anyclass').slideToggle(1000)).done(function() { test(); });

1
你需要做的是使用回调函数。

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

.slideToggle([持续时间], [回调函数])

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

0

最佳方法应该是这样的

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接