Autor Zpráva
Peter 123
Profil *
Javascript som si velmi oblubil, je jednoduchy a lahko sa v nom pisu scripty.
Prave sa ho ucim ale toto mi nejde :

Take cudne ze mi zobrazi iba cislo 2, a potom sa len nacitava sctranka...

<script type="text/javascript">
	
	function zobrazRiadok() {
		i = 0;
		while(i<=20) {
		document.write("<div style=\"width:200px; height:100px; background:black\"></div>");
		break;
		}
	}
	
	cas = setInterval("zobrazRiadok()", 1000);
	document.write(cas);
	
	
	</script>
Nox
Profil
document.write se spouští (možná řeknu trochu nepřesně) jen při (úvodním) vykreslení stránky
takže document.write budeš muset nahradit manipulací s innerHTML atributem prvku ve kterém chceš řádky mít
nebo připojováním elementů* (bude to snad popsané na djpw, na to už používám knihovnu (jQuery), tak teď nevim)

čeho si chtěl docílit tím document.write(cas); ? setInterval/Timeout vrací identifikátor na to časování aby pak to konkrétní časování mohl zrušit

nepodmíněný break v cyklu znamená, že je tam ten cyklus zbytečný, když to stejně prijde jen jednou, i je 0 a není posláno zveku parametrem, takže to taky neovlivní

pokud break odděláš tak bacha, musíš přidat přičítání i, jinak bys dostal nekonečnou smyčku

*) pokud bys jich chtěl přidávat v budoucnu hodně naráz, tak by to asi bylo lepší najednou přes innerHTML nebo něco, pak se -snad- provede update DOM jen jednou místo po každém přidání
Miloš
Profil
Peter 123:
To já si javascript neoblíbil; jednak ho neumím, jednak ho i tak nemám rád ;-)
Ono to bude tím, že nejsem programátor. Ale jestli ti to nějak pomůže, kdysi jsem v něm zbastlil takovéhle „hydiny“: http://pokusna-krysa.webpark.cz/smes/hodiny.html
Conny
Profil *
Pokud si chceš zjistit jestli tohle funguje tak vyměň document.write za alert(). Pokud to hned chceš k něčemu použít tak použij jak už napovídá Nox
document.getElementById("iddivu").innerHTML="text";
. Já na časování používám pouze setTimeout("fce()",1000) což mě nedělá vůbec problém.
Peter 123
Profil *
tak som to skusil:


... ("<div id=\"blabla\"

alert(cas);
document.getElementById("blabla").innerHTML="zobrazRiadok()";

a pri alerte len ukaze cislo 2, a potom znova to nacitavanie stranky..
A innerHTML nejde.

Inac jak sa v javascripte da zavolat class? napr <div class="blabla"></div>
SpotRudloff
Profil
A zkusils'
document.getElementByClass("blabla").innerHTML="zobrazRiadok()";
?
Nox
Profil
šmarja lidi :)

Peter 123, SpotRudloff:
"zobrazRiadok()" je řetězec, text, to nic nedělá

ikdyby to tu funkci pustilo, tak to nejspíš nic neudělá, nebo možná vymaže stávající obsah, protože zobrazRiadok() přece nic nevrací, není tam žádný return, je to jakoby void funkce, takže buď to vpisovat přímo v ní (a odjebnout KONEČNĚ to document.write), nejlíp tak že cílový element (anebo aspoň ID) předáme jako parametr

SpotRudloff:
getElementByClassName neexistuje

Peter 123:
Pokud chceš lepší vybírání elementů, použij cssQuery, Sizzle nebo rovnou jQuery (to už je komplet obecná knihovna)

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0