如何在动画结束后执行操作?

时间:2011-07-07 17:02:44

标签: jquery

我有我的代码:

$(this).attr("disabled","disabled");
$(this).animate({'opacity':'0.6'}, 200);
$(this).animate({'opacity':'1'}, 200);
$(this).attr("disabled","");

我希望在keypress'ed时禁用输入,只有当动画执行时才会启用它。

我该怎么做?

编辑:我刚才意识到我可以这样做:$(this).delay(200).attr("disabled","");。这是好的做法吗?

3 个答案:

答案 0 :(得分:14)

使用回调:

$(this).animate({'opacity':'0.6'}, 200, function() {
    // Animation complete.
  });

答案 1 :(得分:1)

延迟事件不是很好的做法,最好使用动画回调函数。例如:

$(this).animate({'opacity':'1'}, 200, function(){
  $(this).attr("disabled","");
});

答案 2 :(得分:0)

尝试这样的事情:

$(this).animate({ 'opacity': '1' }, 200, function () {   
    $(this).attr('disabled', '');   
});