我使用.done
方法生成必须一个接一个地执行的相关函数之间的顺序。我通常有" .done不是函数"错误,因为我不清楚哪里可以.done
放置。
在这种情况下,我遇到了同样的问题:首先需要.newClassForm
动画直到0高度,然后.infoText
填充一些文本并按此顺序显示。
如果我使用此处显示的.done
方法,则会发生提及错误。
可以.done
放在哪里?我怎么能解决这样的情况?:
$('.tableClassHeader').on('click', '.smartFormDiscard', function(){
$('.newClassForm').animate({'height': 0}, 500);}).done(function(){
$('.infoText').text("Crea una nueva clase").css('display','inline');
})
答案 0 :(得分:3)
你的语法很简单。如果您正确格式化代码,它实际上看起来像:
$('.tableClassHeader').on('click', '.smartFormDiscard', function(){
$('.newClassForm').animate({'height': 0}, 500);
}).done(function(){
$('.infoText').text("Crea una nueva clase").css('display','inline');
})
即。 .done
被链接到.on
方法。
我也相信你必须首先在jQuery对象上调用.promise
。所以实际的代码应该是:
$('.tableClassHeader').on('click', '.smartFormDiscard', function(){
$('.newClassForm').animate({'height': 0}, 500).promise().done(function(){
$('.infoText').text("Crea una nueva clase").css('display','inline');
});
});
由于;
通常会终止语句,因此您已经可以在);}).done
看到这不是正确的。
答案 1 :(得分:1)
像这样使用动画回调
$('.tableClassHeader').on('click', '.smartFormDiscard', function(){
$('.newClassForm').animate({'height': 0}, 500 , function(){
$('.infoText').text("Crea una nueva clase").css('display','inline');
});
});