Avatar billede elskermad.dk Nybegynder
12. juli 2005 - 18:03 Der er 13 kommentarer og
1 løsning

countdown-script, men kan slet ikke få startet JS

hej eksperter!

jeg har problemer med nedenstående scripts... :S

jeg kan ikke engang få den første alert-boks op!

<script language='javascript' type='text/javascript'>
    alert('0');
   
    while(i=0;i<2;i++) {
        countsek('left_sek_' + nr);
       
        nr = nr+1;
       
        alert('1');
    }
   
    alert('2');
   
    function countsek(span) {
        var tal = document.getElementById(span).innerHTML;
       
        if (tal == 0) {
            tal = 60;
        }
        else {
            tal = tal-1;
        }
       
        alert('3');
    }
   
    alert('4');
</script>

hvad gør jeg forkert?

på forhånd tak :)
Avatar billede olebole Juniormester
12. juli 2005 - 19:04 #1
<ole>

"jeg kan ikke engang få den første alert-boks op!"
... ehhh ... tak-tak, det er langt flere informationer, end jeg behøver *host-host*  :D

Du laver en del fejl:
  for (i=0;i<2;i++) {

Så skal din funktion skrives til dokumentet, før du kan kalde den. Altså skal den skrives før for-løkken.

Desuden skal variablen 'nr' have en værdi - f.eks:
  var nr = 0;
- når du vil lægge noget til den med:
  nr = nr+1;

/mvh
</bole>
Avatar billede elskermad.dk Nybegynder
13. juli 2005 - 10:02 #2
ved ikke hvordan jeg har fået rodet rundt i det :S men det ser ud til at virke nu efter lidt opsang ;) smider du et svar?

evt. kan du give mig et tillægssvar på hvordan jeg sikre mig at min countdown-script altid viser tallet i to cifre lige meget om det er under 10.

document.getElementById('left_sek_' + id).innerHTML = sek-1; <-- hvordan får man den til at skrive 07 hvis tallet før var 08? men stadig kun 11 hvis forrige var 12
Avatar billede roenving Novice
13. juli 2005 - 10:38 #3
document.getElementById('left_sek_' + id).innerHTML = (sek<11)?"0"+(sek-1):sek-1;
Avatar billede elskermad.dk Nybegynder
13. juli 2005 - 13:23 #4
så fejler den med nedtællingen roenving - den skifter allerede til 60 sekunder igen ved 09 i stedet for 0!
Avatar billede elskermad.dk Nybegynder
13. juli 2005 - 13:23 #5
<script language='javascript' type='text/javascript'>   
    function countsek(id) {
        var sek = parseInt(document.getElementById('left_sek_' + id).innerHTML);
        var min = parseInt(document.getElementById('left_min_' + id).innerHTML);
        var time = parseInt(document.getElementById('left_time_' + id).innerHTML);
        var dag = parseInt(document.getElementById('left_dag_' + id).innerHTML);
       
        if (sek == 0) {
            if (min != 0 || time != 0 || dag != 0) {
                document.getElementById('left_sek_' + id).innerHTML = 60;
                countmin(id);
            }
            else {
                document.getElementById('left_sek_' + id).innerHTML = '00';
            }
        }
        else document.getElementById('left_sek_' + id).innerHTML = (sek<11)?'0'+(sek-1):sek-1;
    }
   
    function countmin(id) {
        var min = parseInt(document.getElementById('left_min_' + id).innerHTML);
        var time = parseInt(document.getElementById('left_time_' + id).innerHTML);
        var dag = parseInt(document.getElementById('left_dag_' + id).innerHTML);
       
        if (min == 0) {
            if (time != 0 || dag != 0) {
                document.getElementById('left_min_' + id).innerHTML = 60;
                counttime(id);
            }
            else {
                document.getElementById('left_min_' + id).innerHTML = '00';
            }           
        }
        else document.getElementById('left_min_' + id).innerHTML = min-1;
    }
   
    function counttime(id) {
        var time = parseInt(document.getElementById('left_time_' + id).innerHTML);
        var dag = parseInt(document.getElementById('left_dag_' + id).innerHTML);
       
        if (time == 0) {
            if (dag != 0) {
                document.getElementById('left_time_' + id).innerHTML = 24;
                countdag(id);
            }
            else {
                document.getElementById('left_time_' + id).innerHTML = '00';
            }           
        }
        else document.getElementById('left_time_' + id).innerHTML = time-1;
    }
   
    function countdag(id) {
        var dag = parseInt(document.getElementById('left_dag_' + id).innerHTML);
       
        if (dag == 0) document.getElementById('left_dag_' + id).innerHTML = '00';
        else document.getElementById('left_dag_' + id).innerHTML = dag-1;
    }
   
    function countdown() {
        var i = 1;
        var antal = document.getElementById('auktion_liste').value;
       
        while (i<=antal) {
            countsek(i);
           
            i = i+1;
        }
           
        setTimeout('countdown()',1000);
    }
   
    window.onload = function() {
        if (document.getElementById('auktion_liste')) countdown();
    }
</script>
Avatar billede elskermad.dk Nybegynder
13. juli 2005 - 13:24 #6
og det kan godt være at man kan lave det nemmere/bedre men det kan min IQ sgi ikke lige finde ud af :D

(så forslag til forbedringer af koden osv modtages med kyshånd og en forhøjelse af point!)

I skal lige begge lægge nogle svar nu :)
Avatar billede roenving Novice
13. juli 2005 - 13:27 #7
Det jeg skrev har da ikke det fjerneste med nedtællingen at gøre ?-)
Avatar billede roenving Novice
13. juli 2005 - 13:29 #8
-- jeg ville jo nok være så doven, at jeg benyttede mig af mine date-udvidelser !-)
Avatar billede elskermad.dk Nybegynder
13. juli 2005 - 13:33 #9
hvad ved jeg, men hvis du kigger et minuts tid (alt efter hvor heldig du er) på http://www.netgaden.alnet.dk/auktion.php?id=2 og ser når den kommer ned til 9 sekunder, så går den altså galt, og det gjorde den ikke inden!

hvad er en date-udvidelse?
Avatar billede roenving Novice
13. juli 2005 - 13:47 #10
Det er zq nok fordi du ikke har radix på dine parseInts !-)

-- hvis der er et 0 foran et tal opfatter javascript det som et oktal-tal og ikke som et decimal-tal, hvorfor parseInt vil give 0, når den møder 09 uden radix ...

-- men så skal du bare rette til:

var sek = parseInt(document.getElementById('left_sek_' + id).innerHTML,10);

-- og mine Date-udvidelser indeholder bl.a. metoder, som returnerer en tidsforskel til nu i et fornuftigt format:

http://roenving.users.whitehat.dk/date/roenvingDate.html

-- prøv f.eks. at skrive 2005,7,24 i det felt, der hedder reference og se på nedtællingen under .age() !o]
Avatar billede elskermad.dk Nybegynder
13. juli 2005 - 13:51 #11
smart findes der ikke en javascript-manual som der fx er dk2.php.net hvor man kan se alle php-funktioner og hvordan de bruges?
Avatar billede elskermad.dk Nybegynder
04. august 2005 - 19:18 #12
smider du et svar roenving? :)
Avatar billede roenving Novice
05. august 2005 - 07:34 #13
Oki '-)
Avatar billede roenving Novice
06. august 2005 - 02:02 #14
-- og tak for point ;~}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester