setInterval() nie wywołuje funkcji po określonym czasie

0

Witam,
mam taką funkcję i po wywołaniu jej i odczekaniu 2,5 min lub 5 nic się nie dzieje (w konsoli też pusto).

Kod:

function dzialanie()
{
    if(farmy > 0)
    {
        setInterval( function()
        {
            monety = monety +  1;
            chleb = chleb + 1;
            mieso = mieso + 5;
        },300000);
    }

    if(pola > 0)
    {
        setInterval( function()
        {
            monety = monety +  1;
            chleb = chleb + 5;
            mieso = mieso + 1;
        },150000);
    }
}

Funkcja jest wywoływana onLoad="dzialanie()" w sekcji body. Pola i farmy są większe niż zero (tak pokazuje alert(pola)).

0

Pokaż cały kod.
W ogóle to zły dział. @Patryk27

0

I tak zmienne określam: PHP

<script>var mieso = <?= $row['mieso'];?></script>
  <script>var chleb = <?= $row['chleb'];?></script>
  <script>var kamien = <?= $row['kamien'];?></script>
  <script>var drewno = <?= $row['drewno'];?></script>
  <script>var monety = <?= $row['monety'];?></script>
  <script>var poziom = <?= $row['poziom'];?></script>
  <script>var chatki = <?= $row['chatki'];?></script>
  <script>var pola = <?= $row['pola'];?></script>
  <script>var farmy = <?= $row['farmy'];?></script>
  <script>var pracownicy = <?= $row['pracownicy'];?></script>

I to cały kod.

1

Zrób console.log(farmy, pola); na samym początku funkcji dzialanie().

0
Patryk27 napisał(a):

Zrób console.log(farmy, pola); na samym początku funkcji dzialanie().

Pokazuje 1 1.

1

A zmniejsz setinterval do kilku sekund i daj jakiś alert tam

0
MasterOf napisał(a):

A zmniejsz setinterval do kilku sekund i daj jakiś alert tam

Jak dam

if(farmy > 0)
    {
        setInterval( function()
        {
            monety = monety +  1;
            chleb = chleb + 1;
            mieso = mieso + 5;
            alert(monety);
        },1000);
    }

To dobrze monety pokazuje - czyli problem jest taki, że nie wkładam tego do diva i dlatego nie wyświetla. Dziękuję za pomoc.

0

Tak nawiasem mówiąc sam problem był źle określony (a wątek źle zatytułowany): setInterval() nie wywołuje funkcji po określonym czasie -- niby drobnostka, ale jak widzimy, odpowiednie sformułowanie problemu pomogło w rozwiązaniu (czyli problem jest taki, że nie wkładam tego do diva i dlatego nie wyświetla.).

Co za tym idzie - warto wszystko sprawdzać, weryfikować swoje hipotezy - setInterval() nie wywołuje funkcji po określonym czasie, czyli sprawdzamy, czy faktycznie tak jest, że się nie wykonuje (zmniejsz setinterval do kilku sekund i daj jakiś alert tam). Bo bardzo łatwo stać się ofiarą własnych błędnych domysłów (niezależnie nawet od skilla w programowaniu).

1 użytkowników online, w tym zalogowanych: 0, gości: 1