Javascript 如何仅在jQuery动画上的所有回调完成后运行某些代码?
我有一些带有回调的动画代码。我需要一段代码,只有在回调完成后才能运行。我不想修改动画代码或回调。在运行其他代码之前,如何确保所有回调都已运行。我应该看看队列吗?当动画完成但仍有回调挂起时,该项是否已从队列中删除?我应该在这里做什么Javascript 如何仅在jQuery动画上的所有回调完成后运行某些代码?,javascript,jquery,Javascript,Jquery,我有一些带有回调的动画代码。我需要一段代码,只有在回调完成后才能运行。我不想修改动画代码或回调。在运行其他代码之前,如何确保所有回调都已运行。我应该看看队列吗?当动画完成但仍有回调挂起时,该项是否已从队列中删除?我应该在这里做什么 var animateFunc = function () { $('#search').animate({ height: '0px', opacity: '0.0' }, 'fast', 'linear',
var animateFunc = function () {
$('#search').animate({ height: '0px', opacity: '0.0' }, 'fast', 'linear', function () {
$('#search-state').val(searchContainerState.currentPage);
});
};
示例调用:
animateFunc();
someOtherFunc(); //someOtherFunc needs to run after the animation callback code.
如何正确地执行此操作?
谢谢 让
animateFunc
将回调作为参数,然后在使用animateFunc
的任何地方,如果您希望在动画上执行任何操作,请将处理程序作为参数传递给它。试试这个
var animateFunc = function (callback) {
$('#search').animate({ height: '0px', opacity: '0.0' },
'fast', 'linear', function () {
$('#search-state').val(searchContainerState.currentPage);
if($.isFunction(callback)){
callback();
}
});
};
animateFunc(someOtherFunc);
我知道我正在修改您不需要的animateFunc
回调,但这是确保动画完整并希望执行任何回调的正确方法。此处:
$( '#search' ).queue( someOtherFunc );
这将把该函数添加到效果队列的末尾,这意味着它将在现有动画操作之后被调用
现场演示:我不想修改动画代码或回调。。。为什么?这正是我要找的。谢谢