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.
  1. var timer = null;  
  2. window.onload = function() {  
  3.     timer = setInterval(valami, 1000);  
  4. }  
  5.   
  6. function valami() {  
  7.     document.write(i);  
  8. }  
  9.   
  10. // Ezt kell majd onclickre meghivni  
  11. funciot leallit() {  
  12.     if (timer) {  
  13.         clearInterval(timer);  
  14.     }  
  15. }  
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,
  1. function leallit() {  
  2.     if (timer) {  
  3.         clearInterval(timer);  
  4.     }  
  5. }  
--
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.
  1. <html>  
  2.         <head>  
  3.         <script language="JavaScript" type="text/javascript">  
  4.         var i = 0;  
  5.         var N = 10;  
  6.         var timer = null;  
  7.   
  8.         window.onload = function() {  
  9.             timer = setInterval(lejatszas,1000);  
  10.         }  
  11.   
  12.         function lejatszas() {  
  13.                 if (i<N) {  
  14.                         i++;  
  15.                 }  
  16.                 document.getElementById('mezo').value = i;  
  17.         }  
  18.   
  19.         function leallit() {  
  20.                 if (timer) {  
  21.                         clearInterval(timer);  
  22.                 }  
  23.         }  
  24.         </script>  
  25.         </head>  
  26.         <body onlick='leallit()'>  
  27.             <form>  
  28.             <input type="text" style="border: none" name="mezo" id="mezo" />  
  29.             </form>  
  30.         </body>  
  31. </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):
  1. mezo.innerHTML = egystring;  
Ez ide fogja írni az egystring változó tartalmát a HTML-ben:
  1. <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