JQuery: как я могу остановить appendTo, чтобы это произошло мгновенно? - PullRequest
2 голосов
/ 01 июня 2011

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

<a href="#">My Link</a>

И я бы хотел переместить ее в неупорядоченный список:

<div id="newDiv">
<ul>
    <li>Item 1</li>
    <li>Item 2</li>
    <li>Item 3</li>
</ul>
</div>

Сделав что-то вроде этого:

myObject.fadeOut(300).appendTo('#newDiv ul').fadeIn(300);
myObject.wrap('<li></li>');

Я знаю, что appendTo не является объектом анимации, поэтому это происходит мгновенно.Поэтому я попытался добавить приложение в качестве обратного вызова для fadeOut:

myObject.fadeOut(300, myObject.appendTo('#newDiv')).fadeIn(300);
myObject.wrap('<li></li>');

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

1 Ответ

6 голосов
/ 01 июня 2011

Попробуйте это:

myObject.fadeOut(300, function() { $(this).appendTo('#newDiv ul').fadeIn(300) });

Выполнив "appendTo" в обратном вызове из замирания, вы можете подождать, пока замирание не закончится.Все (насколько я знаю) анимационные эффекты jQuery принимают такие обратные вызовы.

...