ugrás a tartalomhoz

Javascript folyamatok

fudom · 2005. Már. 14. (H), 23.15
Sziasztok!

Az lenne a kerdesem, hogy hogyan lehet egy javascript folyamatot leallitni.
peladaul:

<script language=javascript>
N=100;
function valami() {
i=0;
if (i<N)
{
i++;
}
document.write(i);
window.setTimeout("valami()",100);
}

elmeletileg ez elkezdi kiirni 0-tol 100-ig a szamokat.
azt szeretnem hogy teszek be egy <input type=button> -t es az onClick-re a kiiras megalljon.
van valakinek vmi otlete ?
koszi
 
1

+1 függvény?

Dualon · 2005. Már. 15. (K), 00.59
Hirtelen az jut eszembe, hogy csinálsz egy másik függvényt, ami vizsgálja a feltételed, és boolean típussal tér vissza... aztán ezt hívogatod / vizsgálgatod minden körben.
2

setInterval

Hodicska Gergely · 2005. Már. 15. (K), 09.38
Szia!

A setTimeout használata depricated a Javascriptben. Használd helyette a setInterval-t. Ilyenkor a megadott függvény folyamatosan lefut a megadott időközönként. Leállítani a clearInterval paranccsal lehet.
var timer = null;
window.onload = function() {
	timer = setInterval(valami, 1000);
}

function valami() {
	document.write(i);
}

// Ezt kell majd onclickre meghivni
funciot leallit() {
	if (timer) {
		clearInterval(timer);
	}
}
Felhő
3

i = 0;N = 10;var

fudom · 2005. Már. 15. (K), 13.32
<script language="javascript">

i = 0;
N = 10;

var timer = null;
window.onload = function() {
timer = setInterval(lejatszas,1);
}

function lejatszas()
{
if (i<N)
{
i++;
}
document.write(i);


}

function leallit() {
if (timer) {
cleatInterval(timer);
}
}

</script>

en ezt csinaltam, de nem mukodik. :(
mi lehet a baj ?
4

Elírtad

Török Gábor · 2005. Már. 15. (K), 14.57
Helo,

function leallit() {
    if (timer) {
        clearInterval(timer);
    }
}
--
slink
5

Meg mindig nem jo. :-(

fudom · 2005. Már. 15. (K), 16.37
Koszonom!
Kijavaitottam az elirast de ez meg mindig nem csinal semmit azon kivul hogy kiirja az 1st.

<script language=javascript>
i=0;
N=10;

var timer = null;
window.onload = function() {
timer = setInterval(lejatszas,1);
}

function lejatszas()
{
if (i<N)
{
i++;
}
document.write(i);


}

function leallit() {
if (timer) {
clearInterval(timer);
}
}
</script>

meg mi a nem jo ? :$ :-)
koszonom...
6

Re: Meg mindig nem jo. :-(

Török Gábor · 2005. Már. 15. (K), 17.27
Helo,

De jó, hibátlan, csak nem azt csinálja, amit szeretnél, ennek pedig a document.write() az oka, ami úgy tudom, mindig felülírja a korábbi tartalmat, emiatt látszódik csak egy egyes. Illetve biztos, hogy ezred másodpercenként akarod meghívni a lejatszas() függvényt? Ha egy másodpercet akarsz, akkor 1000-et kell átadnod paraméterben. Az alábbi megoldásban egy szöveges beviteli mezőbe íratjuk az i változó értékét, és így mindjárt más.

<html>
        <head>
        <script language="JavaScript" type="text/javascript">
        var i = 0;
        var N = 10;
        var timer = null;

        window.onload = function() {
            timer = setInterval(lejatszas,1000);
        }

        function lejatszas() {
                if (i<N) {
                        i++;
                }
                document.getElementById('mezo').value = i;
        }

        function leallit() {
                if (timer) {
                        clearInterval(timer);
                }
        }
        </script>
        </head>
        <body onlick='leallit()'>
            <form>
            <input type="text" style="border: none" name="mezo" id="mezo" />
            </form>
        </body>
</html>
--
slink
9

Vagy meg lehet oldani így

Tome · 2005. Már. 16. (Sze), 17.45
Vagy meg lehet oldani így is (ha jól tudom):
mezo.innerHTML = egystring;
Ez ide fogja írni az egystring változó tartalmát a HTML-ben:
<DIV id="mezo"></DIV>
Javítsatok ha valami nem úgy van, ahogy én írtam!
7

Játszunk szépen

Hodicska Gergely · 2005. Már. 15. (K), 18.46
Szia!

Csak két apróságra szeretném felhívni a figyelmed.
1. Ha lehet töltsd ki külön a Téma mezőt.
2. Kódok beidézésekor használd a [colorer] bbtag-et.

Egyik se kötelező, de erthetőbbé teszi a kérdésed, te is picit jobban átgondolod azt, illetve egyfajta megtisztelése a leendő válaszadóknak.


Felhő
8

Oksa, es bocsi.

fudom · 2005. Már. 15. (K), 22.33
Rendben es elnezest. A [colorer] cuccost nem sikerult megfejteni. :$
Es koszi mindenkinek a valaszokat, sikerult elernem amit akartam. :-))
Hali