Работа с очередью проще всего, если вы используете аргумент next
, который передается обратному вызову, но в вашем случае, я думаю, проблема в том, что вы пытаетесь вручную поставить в очередь и удалить из очереди функцию анимации, которая сама по себе возиться с очередью. Он должен работать нормально, если вы используете обычную функцию, которая не мешает с такой очередью, и вы можете использовать либо dequeue()
, либо я предпочитаю использовать next()
:
$('#di').animate({left:300},3000,function(){//animation callback
$('#hello').html('1st is done');
}).animate({left:0},3000,function(){//animation callback
$('#hello').html('2nd is done');
}).queue(function(next){//queue
$('#hello').html('the inside queue is done');
next();
}).animate({left:0},3000,function(){//animation callback
$('#hello').html('the last queue is done');
});
Но нет реальной причины использовать .queue
и .dequeue
в этом случае, так как все анимации автоматически помещаются в очередь, так что вы можете просто сделать это:
$('#di').animate({left:300},3000,function(){//animation callback
$('#hello').html('1st is done');
}).animate({left:0},3000,function(){//animation callback
$('#hello').html('2nd is done');
}).animate({left:300},3000, function(){//animation callback
$('#hello').html('the inside queue is done');
}).animate({left:0},3000,function(){//animation callback
$('#hello').html('the last queue is done');
});