Autor Zpráva
De.Li
Profil *
Ahoj mam maly problem. Potreboval bych nejak rozchodit nasledujici script:
function usporadej()

{
var objektVysledky = document.getElementById('vysledky');
f = 0;
str = poleZobrazit.length / 5;
str = Math.ceil(str);
for (var q = 1; q <= str; q++)
{
for (var o = 0; o < 5; o++)
{
var nazev = poleZobrazit[f];
var zobrazDiv = document.getElementById(nazev);
objektVysledky.appendChild(zobrazDiv);
f++;
}
objektNavigace = document.createElement('p');
objektNavigace.id = 'navigace';
objektNavigace.onclick = "smaz(); continue";
objektNavigace.appendChild(document.createTextNode(q));
objektVysledky.appendChild(objektNavigace);
break;
}
}

Melo by to fungovat tak ze po kliknuti na objektNavigace se smazou vysledky, ke q se pricte jedna a bude to pokracovat po break. Chyba bude nekde v tom continue, protoze nevim jak to presne funguje nejspis to bude chtit pouzit nejak jinak. Prosim poradite nekdo???
Joker
Profil
objektNavigace.onclick = "smaz(); continue";
ten zápis nedává smysl. Co to má dělat?
De.Li
Profil *
No nejdriv by to melo pod sebou zobrazit 5 divu a pod nima cislo od 1 do "poleZobrazit.length / 5" na ketre kdyz kliknu tak provest funkci smaz() coz funguje, a pak by to melo opet provest cyklus for (var q = 1; q <= str; q++) s tim ze uz se q nebude 1 ale 2 a tak porad dokola.
Joker
Profil
Aha a ty poslední tři řádky se mají provést kdy?

Pořád mi není jasné, za kterých podmínek se jaká část toho cyklu má provést.
De.Li
Profil *
nejdriv by se melo q nastavit na 1 a vypsat 5krat "objektVysledky.appendChild(zobrazDiv)" za to by se melo vypsat q "objektVysledky.appendChild(objektNavigace)" ted by se to melo zastavit a pockat na to az kliknu na to cislo a pokracovat q nastavit na 2 a vypsat 5krat DIV za to by se melo vypsat q a opet cekat na klik.
Joker
Profil
Ahááááááá!

Jenže příkaz "continue" neslouží k zastavení a pokračování skriptu. Od toho máme události.
Čili to co je ve for() cyklu by se dalo do zvláštní funkce a ta by se volala při kliknutí na ten prvek.
peta
Profil
De.Li
viz Joker, to mas nejake zmylene. Viz jakpsatweb - javascript - cykly. continue je vylozene pro cyklus.

objektNavigace.onclick = function() {smaz();};
tohle je prirazeni onclick a nebo
objektNavigace.onclick = smaz; //coz je presmerovani na funkci

Co se tyce cekani na klik, tak
objektNavigace.onclick = function() {smaz();};
je totez jako
objektNavigace (DIV)
<DIV onclick = "smaz();"></DIV>
Coz dela to, ze pokazde, kdyz kliknes na tento objekt, tak se spusti nejaka udalost. VZDY se ceka na novy klik.

jinak take nechapu, co chces docilit. Neslo by to treba ukazat na obrazku nebo lepe popsat graficky?

Chces rozbalovaci menu?
css.interval.cz

Chces rozbalovaci menu generovane javascriptem?
to by se dalo najit v google, objektNavigace.onclick = function() {smaz();};

Chces neco jako otazky? Odpovis na otazku, zobrazi se nova?
Ja bych pouzival innerHTML pro cely blok id=otazky . neni to treba resit s JS DOM

ALE...
for (var q = 1; q <= str; q++)
{
for (var o = 0; o < 5; o++)
... zasadne bych pouzival zazite promenne i,j,k,l.m,n, x,y,z , pokud zacnes q,o tak to muze znamenat cokoliv.
Pak bys mohl vyuzit "o" jako "objekt navigace" a si myslim, ze by se ti to pak celkem zprehlednilo.
Kdyz se neco jmenuje str, predpoklada se typ=string='retezec znaku';
str = poleZobrazit.length / 5;
ty to pouzivas pro cislo, opet netypicke.

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