动画后跳过jQuery函数

时间:2012-01-09 16:00:13

标签: jquery function

我有一段代码正在从点击功能运行。由于某种原因,动画低至100px的部分永远不会运行console.logmy_function(),它会跳过放在那里的任何内容。动画高达200px的部分都运行良好。是什么给了什么?

if($(this).hasClass('open'))
{ 
  $(this).removeClass('open').addClass('closed');
  $(this).animate({'width': '100px'}, {queue:false, duration:150, easing: 'linear'}).delay(160, function (){
    //Nothing in here ever get run??
    console.log('closed');
    my_function();
  });
}
else
{
  $(this).removeClass('closed').addClass('open');
  $(this).animate({'width': '200px'}, {queue:false, duration:200, easing: 'linear'}).delay(210, function (){
    console.log('opened');
    my_function();
  });
}

2 个答案:

答案 0 :(得分:5)

$.fn.delay没有回调参数。

http://api.jquery.com/delay/

答案 1 :(得分:1)

您应该使用.animate的回调,而不是尝试使用.delay。试试这个:

$(this).animate({'width': '100px'}, 150, function (){
    console.log('closed');
    my_function();
});