Chcę dodać klasę do elementu DIV (ID = "One") 10 sekund po ładunkach strony, bez konieczności zakoślenia lub kliknięć itd. Wypróbowałem następujący kod, ale nie działa:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>


$(document).ready(function(){
$('#one').delay(10000).addClass("grow")
});

Jakiś pomysł, w którym powyższy kod się dzieje?

6
Sam Friday Welch 19 listopad 2013, 23:07

1 odpowiedź

Najlepsza odpowiedź

Metoda delay dodaje element do kolejki animacji, ale jako addClass nie jest efektem animacji, nie jest to wkładanie kolejki, włącza się od razu.

Możesz użyć metody queue, aby umieścić kod w kolejce animacji, dzięki czemu działa po opóźnieniu:

$('#one').delay(10000).queue(function(){
  $(this).addClass("one");
});

Demo: http://jsfiddle.net/6v9rx/

Alternatywą do użycia animacji za opóźnienie jest użycie metody setTimeout:

window.setTimeout(function(){
  $('#one').addClass("one");
}, 10000);
12
Guffa 19 listopad 2013, 19:15