2012-04-20 7 views
0

Я небольшие проблемы с этим куском кодаДождавшись этой анимации закончена, прежде чем повторить на другую ссылку

$('.tree-item').hover(function() { 

    $('#_'+this.id).fadeIn().delay(500).animate({ left: "0px" }, 200); 

},function() { 
    $('#_'+this.id).animate({ left: "3000px" }, 200, function(){ 
     $(this).fadeOut().css('display', 'none').animate({ left: "-3000px" }, 300); 
    }); 
    $(this).stop();  
}); 

У меня есть дерево со ссылками на и этот кусок кода приносит в облаке с содержанием когда ссылка зависнет.

мне нужно ждать, пока последняя ссылка не парить действия завершены до начала текущих действий ссылки, как это может выглядеть очень неаккуратно, если пользователь быстро парит над ссылками ..

Вы можете посмотреть, что я имею в виду здесь http://foc.dev.lemon-fresh.co.uk/#program

Спасибо за ваше время.

+0

Вы также можете остановить анимацию с очередями [.stop (правда,)] (http://api.jquery.com/stop/) –

+0

Я думаю, что есть большая проблема, вы не можете просто ждать окончания анимации, потому что вы не знаете, как далеко она проходит через анимации, вам придется сначала решить эту проблему. Я предлагаю отслеживать, открыто ли что-то, и только начинать показ, когда он завершил закрытие. – will

+0

Привет, не могли бы вы рассказать о jQuery noob :) –

ответ

5

Все функции анимации jQuery имеют метод обратного вызова complete, который будет выполнен, когда анимация будет завершена.

.animate (свойства [, продолжительность] [, ослабление] [, полный])

исх: http://api.jquery.com/animate/

$(this).animate({}, 200, null, function() { 
    //do this when ready... 
}); 
Смежные вопросы