setInteval funkcija

1

setInteval funkcija

offline
  • Pridružio: 16 Jan 2010
  • Poruke: 23

Pozdrav drugari. Imam sledecu funkciju koja ispsusje h1 - h6. Igram se malo sa funkcijom setInterval() , pa sam pokusavao da napisem script koji ce na primer na 2sec da mi ispusuje tagove od h1 - h6. Na zalost nisam uspeo pa bi mi trebala vasa pomoc.
function name() {             var i = 1;             while (i < 7) {                               document.write("<h" + i + ">Danas je divan dan</h" + i + ">")                                 i++;             }         }         name();
Kapiram da setInteraval ima dva parametra. Prvi je funkcija koju zelim da postaviom da mi radi intervale, a drugi vreme intervala. Kako bih ovo mogao da izvedem ?



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Milan
  • Pridružio: 17 Dec 2007
  • Poruke: 14809
  • Gde živiš: Niš

Pa samo pozoveš setInterval funkciju i predaš joj kao parametre funkciju koju želiš da pozivaš kada se interval završi i sam taj interval:
setInterval(name, 2000);



offline
  • Pridružio: 16 Jan 2010
  • Poruke: 23

Mozda nisam lepo objasnio sta zelim. Hocu da mi se ispisuje h1 pa interval od 2 sec, pa onda h2 pa interval ...i ako do h6. Tako mi ispisuje svih h1-h6 pa onda interval...

offline
  • Milan
  • Pridružio: 17 Dec 2007
  • Poruke: 14809
  • Gde živiš: Niš

I nakon toga da zastane ili da krene ponovo od h1?

Moraćeš da izmeniš metodu tako da ne radi dodavanje svih elemenata odmah, nego da pri svakom pozivu dodaje samo jedan element, a koji tačno - to će da zavisi od vrednosti nekog globalnog parametra koji će nakon dodavanja elementa da se inkrementira.

offline
  • Programer
  • Pridružio: 23 Maj 2012
  • Poruke: 4575

Funkcija koja je prosleđena kao parametar za setInterval() se izvršava sve dok se ne pozove clearInterval() tako da bi rešenje tvog problema bilo:

var i = 1; var interval = setInterval( function () {   document.write("<h" + i + ">Danas je divan dan</h" + i + ">");   (i < 6) ? i++ : clearInterval(interval); }, 2000);
Pozivanjem setInterval() u while petlji bi stalno kreirao nove intervale koji bi se izvršavali u beskonačnost. Ovako, nakon određenog intervala svaki put ispisuješ ono što želiš, a nakon toga proveravaš da li je promenljiva i manja od 6. Ako jeste, samo povećavaš i, a ako nije, samo brišeš trenutno postavljen interval.

Isti primer, ali sa izdvojenom funkcijom:

var i = 1; var interval = setInterval(name, 2000); function name() {   document.write("<h" + i + ">Danas je divan dan</h" + i + ">");   (i < 6) ? i++ : clearInterval(interval); }
Ako ti nije jasna linija provere baci pogled na ovaj članak.

offline
  • Pridružio: 16 Jan 2010
  • Poruke: 23

Sta reci. Hvala Smile

offline
  • Milan
  • Pridružio: 17 Dec 2007
  • Poruke: 14809
  • Gde živiš: Niš

Ništa ne reći, nego učiti sa pažnjom i rezumevanjem. Very Happy

offline
  • Pridružio: 16 Jan 2010
  • Poruke: 23

Nemoj me kritikovati, tek mi je 20ak dana u JS-u Smile)) Bitno je da ne odustanem... Smile))

offline
  • Milan
  • Pridružio: 17 Dec 2007
  • Poruke: 14809
  • Gde živiš: Niš

Kritikujem možda, ali je dobronamerno svakako, nadam se da shvataš to. Smile

Mi ćemo naravno uvek da pružimo odgovore ukoliko ih znamo (ili mi, ili neko drugi negde drugde), to nije problem. Ali je suština da su na sve probleme na koje ti kao početnik nailaziš sada oni koji su počinjali pre tebe takođe nailazili, i svi ti problemi su iznova i iznova pojašnjavani u malom milionu tema po raznim forumima. Dakle, u velikom broju slučajeva uz malo više truda nego obično možeš da dođeš do onoga što ti treba, a ako se uhodaš u tome to može da ti bude vrlo korisno kada se nekada budeš bavio realnim problemima.

offline
  • Pridružio: 16 Jan 2010
  • Poruke: 23

Shvatam Smile)) Trudim se da pre nego sto postavim pitanje izguglam, probam sam, onda se mnogo iznerviram i postavim pitanje ovde jer mi uvek objasnite tako da ukapiram iz prve Smile))

Ko je trenutno na forumu
 

Ukupno su 1314 korisnika na forumu :: 34 registrovanih, 5 sakrivenih i 1275 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: 9k38, A.R.Chafee.Jr., Andrija357, Asparagus, Bobrock1, Brana01, bufanje, cvrle312, dika69, DonRumataEstorski, Dorcolac, DPera, drimer, FileFinder, galijot, gasha, Georgius, ikan, jackreacher011011, Karla, kjkszpj, Krvava Devetka, kuntalo, kybonacci, mercedesamg, Milos ZA, nextyamb, Pakito93, Parker, SlaKoj, wolf431, YugoSlav, zlaya011, Zoca