Nie rozumiem, co jest nie tak. Mam trzy kody:
pierwszy:setInterval wewnątrz funkcji powoduje błąd: zmienna nie jest zdefiniowana
<script language="JavaScript" type="text/javascript">
var count = 0;
alert(count);
var timer = setInterval("count = count + 1; alert(count);",10000);
</script>
drugie:
<script language="JavaScript" type="text/javascript">
function countdown()
{
var count = 0;
alert(count);
var timer = setInterval("count = count + 1; alert(count);",10000);
}
countdown();
</script>
trzecie:
<script language="JavaScript" type="text/javascript">
var count = 0;
function countdown()
{
alert(count);
var timer = setInterval("count = count + 1; alert(count);",10000);
}
countdown();
</script>
Pierwszy kod działa poprawnie, drugi produkuje błąd w linii "setInterval": "count nie jest zdefiniowany", a trzeci kod znów działa poprawnie. Zakres zmiennej "count" powinien być globalny dla funkcji setInterval w drugim kodzie. Dlaczego tak nie jest? Używam Mozilla Firefox. Dzięki.
Właśnie znalazłeś jeden z powodów, dla których nie powinieneś używać łańcuchów jako callbacków dla setInterval/setTimeout. Spójrz na powiązane pytania po prawej stronie, założę się, że połowa z nich ma ten sam problem. – Yoshi