2010-08-27 4 views

ответ

37

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

$("#microcharcounter").delay(10000).show(0); 

или это:

$("#microcharcounter").delay(10000).queue(function(n) { 
    $(this).show(); 
    n(); 
}); 

Причина этого заключается в том, что .delay() только задержит элементы в очереди анимации. Таким образом, вы можете сделать .show() короткой анимацией, добавив продолжительность «0» или добавить ее в очередь с .queue().

+4

Если вы вручную ставите очередь, не забудьте удалить из очереди! :) –

+0

@Nick - просто добавил 'n();', но нужно ли это, когда это последний элемент? – user113716

+0

Да, если вы когда-нибудь вызываете другую анимацию позже, например, лучше всего быть в безопасности IMO, вы также можете вызвать '$ (this) .show(). Dequeue()', это то, что я обычно делаю при работе с '$ (это), немного чище для меня. –

13

Вы можете сделать это следующим образом:

setTimeout(function() { 
    $("#microcharcounter").show(); 
}, 20000); 

Проблема с .delay() и .show() (без срока), является то, что .show() не анимация, это непосредственный эффект, который не находится на fx очереди на все. Тем не менее, вы можете дать ему такую ​​продолжительность:

$("#microcharcounter").delay(20000).show("fast"); 
+0

Всегда искать задержку на google, когда мне нужно использовать setTimeout. Так что этот пост мне помог несколько раз :) – Kimtho6

Смежные вопросы