我有一个输入列表(类型=" radio"),我在点击动画时运行动画,同时我还禁用动画输入正在运行。
如何在完成运行后调用另一个函数?
function animation(para1, para2, para3, para4) {
// calling a function to clear the animation for time before
// this gets called when a input is clicked to run a animation
// also hides inputs
}
一旦动画完成,我需要以某种方式调用另一个函数来重新启用输入
答案 0 :(得分:1)
你需要一个回调函数......这是一个回调函数的例子
access_code = @auth_client.fetch_access_token!
答案 1 :(得分:1)
CSS动画结束时会发生一个事件。 CSS动画比jQuery动画更好,更快。
您可以在CSS中编写动画,使用jQuery设置启动动画的类,然后等待结束。
了解如何detect end of CSS animation
$(".button").click(function(){
$(this).addClass("animate");
$(this).one("webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend",
function(event) {
// Do something when the transition ends
});
});
答案 2 :(得分:1)
要么使用回调,这只是函数参数并且已经存在很长时间了,就像这样
function animation(para1, para2, para3, para4, callbackFn) {
//do the work
callbackFn(); //work is done, callback can be invoked now
}
或考虑使用promises,它们是ES6标准的一部分。如果使用ES5或更低版本,那么也可以提供承诺的库,例如Kris Kowal's Q
答案 3 :(得分:0)
@Radek Pech - 感谢您指点我正确的方向。我没有考虑CSS动画时间,这使得它看起来像回调被提前解雇。
答案 4 :(得分:-1)
查看Javascript callbacks。
本质上你可以将一个函数作为参数传递给另一个函数,然后再执行它