Autor Zpráva
emitor
Profil
Zdravím, čo sa týka jQuery a javascriptu vôbec som úplny začiatočník. Mám vytvorenú funkciu countdown, ktorá dostane iba jediný parameter - selektor. Prvá hodnota sa tam načíta s PHP, potom si ju zoberie jQuery a už ju pekne odpočítava. Čiže môj kód vyzerá nejako takto:
<script language="javascript">
    function countdown(paSelector) {
        var time = $(paSelector).html();
        var output;
        var timer = setInterval(function() {
            output = time;
            $(paSelector).html(output);
            time--;
            if (time === 0) {
                clearInterval(timer);
            }
        }, 1000);
    }
    $(document).ready(function() {
        countdown(".ticker");
    });
</script>

<html>
    <body>
        <div class="ticker">5</div>
    </body>
</html>

Ale ako riešiť ak chcem mať na webe dva, prípadne viac rôznych tickerov, ktoré využívajú funkciu countdown. Teda v html by som mal:
<div class="ticker">5</div>
<div class="ticker">7</div>
<div class="ticker">19</div>

Ako jednoducho zabezpečiť, aby všetky tickery fungovali správne (odpočítavali od svojej hodnoty) a zároveň, aby nemuseli byť css triedy niečo ako ticker1, ticker2, ticker3... jednoducho potrebujem, aby bolo možné na stránku vkladať dynamický počet tickerov. Zrejme by to nejako mohlo ísť cez ".each()", ale neviem ako ... a možno je aj nejaké iné - elegantnejšie riešenie. Dá sa to vôbec urobiť bez toho, aby mal každý ticker nejaký jednoznačný identifikátor? (Napr. name="XYZ"). Pretože ak budem tých tickerov potrebovať 50 a budú sa automaticky "generovať" (vyťahovať z databázy) nebolo by príjemné vypisovať ten identifikátor.

Ďakujem za každú radu, verím, že nejaký zručnejší jQMaster pomôže. :)
_es
Profil
emitor:
Uprav si tento skript, aby namiesto dátumu odpočítaval len číslo.
emitor
Profil
pozrel som to, ale nestačí mi to...tam ide presne o to, že každý prvok tam má iné "div id" (a,b,c,d,e)...ja potrebujem, aby to ale fungovalo takto:
 
        odpocet("a", Date.UTC(2010, 4, 1, 12, 0)); // 1.5.2010 12:00 UTC
        odpocet("a", Date.UTC(2010, 5, 2, 14, 0)); // 2.6.2010 14:00 UTC
        odpocet("a", Date.UTC(2010, 5, 3, 14, 0)); // 3.6.2010 14:00 UTC
        odpocet("a", Date.UTC(2020, 8, 1, 9, 15)); // 1.9.2020 09:15 UTC
        odpocet("a", Date.UTC(2009, 0, 1, 0, 0));  // 1.1.2009 00:00 UTC

proste v tom mojom prípade budem tie časovače generovať (vyťahovať z databázy) takže mi to nestačí...chcem niečo takéto:
(Pre každý element kde ID == "a") urob {
     odpocet("a", Date.UTC(2010, 4, 1, 12, 0)); // 1.5.2010 12:00 UTC
}
keďže ID má byť na stránke iba jedno, ja používam class, takže v mojom prípade takto:
(Pre každý element kde class == "ticker") urob {
     countdown(???);
}
juriad
Profil
Něco takového?
emitor
Profil
juriad:
Něco takového?

EXACTLY ! - Presne, to je ono! Ďakujem krásne!

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0