我正在摸不着为什么在运行此功能时我会收到两个回调。
lE = $(this).clone().appendTo('body');
// Hide submenu
$('nav>ul>li>ul').fadeOut(100, function() {
// Animate clone
$(lE).animate({ 'top': '160px' }, 100, function() {
console.log('aaa'); // PRINTS TWICE IN CONSOLE
$(lE).animate({ 'left': '150px' }, 300, function() {
$(lE).addClass('lE');
});
});
});
正如您所看到的,我首先为lE分配一个克隆。当然,lE此时只能是单个元素吗?
然后我继续在彼此内运行三个动画,但第二个动画被召回两次。我无法理解为什么。
答案 0 :(得分:-1)
我之前使用多个链回调时遇到了问题。尝试使用setTimeout
而不是函数回调。这种方法以前对我有用。
lE = $(this).clone().appendTo('body');
$('nav>ul>li>ul').fadeOut(100);
setTimeout(function() {
$(lE).animate({ 'top': '160px' }, 100);
},100);
setTimeout(function() {
$(lE).animate({ 'left': '150px' }, 300, function() {
$(lE).addClass('lE');
});
},200);