jQuery: использование delay () и prepend () - PullRequest
2 голосов
/ 14 июля 2010

В следующем коде последняя строка не работает на моем пути:

$('button.goal').click(function () {
 $('div.scorer_away').animate({
  width: 'hide',
  opacy: 'hide'
  }, 'slow')
 .delay(2500)
 .animate({
  width: 'show',
  opacy: 'show'
  }, 'slow');
 $('span.scorer_away').delay(3000).prepend('<img src="chofbauer.png" alt="" />');

Как я могу заставить это работать, что функция prepend () добавляет новое изображение ПОСЛЕ 3 секчерез 2,5 с контейнер, в котором скрывается img)?

Ответы [ 2 ]

1 голос
/ 14 июля 2010

.delay() работает только с jQuery fx methods. .prepend() не один из них.

Вы можете обойти это как

$('span.scorer_away').delay(3000).show(1, function(){
    $(this).prepend('<img src="chofbauer.png" alt="" />');
});

На самом деле вам нужно создать свой собственный .queue () для «чистого» решения.

Другой способ выполнить эту задачу - использовать нативные javascripts setTimeout().

setTimeout(function(){
   $('span.scorer_away').prepend('<img src="chofbauer.png" alt="" />');
}, 3000);
0 голосов
/ 14 июля 2010

Вы можете попробовать использовать setTimeout:

function myfunc() { $('span.scorer_away').prepend('<img...>') };   
setTimeout( myfunc, 3000 );
...