Autor Zpráva
Fred
Profil
for(var i=0;i<divy.length;i++){
var zobrazen=divy[i].style.display;
if(zobrazen=='block'){
var cislo=divy[i].getAttribute('rel');
var dalsi='a'+(cislo*1+1);
divy[cislo].style.display='none';
//divy[dalsi].style.display='block'; // tohle mi vrací že nemá vlastnosti ?
alert(dalsi)
}}
Charlie
Profil
var dalsi='a'+(cislo*1+1);

Tento řádek vám to asi přetypuje na číslo. Zkuste tohle:
var dalsi='a'+((cislo*1+1)+'');
Fred
Profil
To dělá to samý, v alertu to vrátí požadovanou hodnotu, což je vlastně id dalšího divu, ale když ho chci zobrazit (divy[dalsi].style.display='block'; ) nejde to.
Fred
Profil
BTW zkoušel jsem i document.getElementById(dalsi).style.display='block'; a taky to nejde, přitom v alertu to vrací správné idéčko
Fred
Profil
Teď jsem zkusil odkomentovat obojí tady takhle

for(var i=0;i<divy.length;i++){
var zobrazen=divy[i].style.display;
if(zobrazen=='block'){
var cislo=divy[i].getAttribute('rel');
var dalsi='a'+(cislo*1+1);
divy[cislo].style.display='none';
getId(dalsi).style.display='block';
alert(dalsi)
}
}

a funguje to, ale když zakomentuju ten alert přestane to fachat?
peta
Profil *
A nejaky zbytek scriptu?
Ja vidim treba tohle:
radek1: for(var i=0;i<divy.length;i++) ... cili i nabyva hodnoty cisla
radek2: divy[i].style.display; ... kde i=0 (treba)
radek5: var dalsi='a'+(cislo*1+1) ... dalsi je retezec
zakomentovany ...
radek7: divy[dalsi].style.display='block'; ... kde dalsi="a0" (ve srovnani s radkem 2 neco jineho)

ten druhej pokus nechapu, jestli na nem, co opravovat?
Ja treba, kdyz resim displejoviny, tak pouzivam pole s true/false a uplne nakonec to zapisuji do prvku.
Dale treba vnitrni promenne znacim jednim pismenkem, globalni jako text>2, coz zvysuje prehled.
Fred
Profil
Pošlu to na web
Fred
Profil
http://xy.wz.cz/prezentace.html text je jen vycpávka, nemám sílu ho teď předělávat, nemělo to jít na web. Jde o to ovládání pomocí klávesnice šipky vlevo, vpravo a nahoru.
Charlie
Profil
Ve Firefoxu 1.0.4 mi to funguje v pohodě. Jaký je tam ještě problém?
Fred
Profil
Charlie Nefunguje zkus šipku doprava na klávesnici, mělo by se to posunout na další nezobrazený div, alert to vrací správně. Jen netuším jestli by to fungovalo i na linuxu. Kdyžtak šipka vlevo vrátí alert <
Charlie
Profil
Ale proč to teda tlačítkama funguje?
Fred
Profil
Užjsem to opravil, byl to nesprávný přístup k this. Musel jsem holt přidat pomocnej input hidden.
Fred
Profil
Můžete se mi prosím na to někdo mrknout jestli to ovládání šipkami funguje dobře i v Linuxu? Ve windowsech jsem to testoval v prohlížečích Firebird 0.7, Firefox 1.01, K-meleon 0.7, K-meleon 0.9, IE 5,IE 5.5, IE 6, Opera 8, Opera 7.23, Opera 7.5, Mozilla 1.7.2, Netscape 7.0, Netscape 7.2 a Lynx. Je to tady http://xy.wz.cz/prezentace.html
Charlie
Profil
Firefox 1.0.4 OK, to je asi jasné. Mimochodem pěkný script :D
Fred
Profil
Ó děkuji, jen jsem si hrál a ono se to samo vyvíjelo, viděl jsem něco co dělá to samé. Tady http://adactio.com/atmedia2005/ je to odsud http://www.meyerweb.com/eric/tools/slideshow/test.html . Protože jsem to celé zbastlil úplně z gruntu, tak to asi někam vyhodím na web pod GPL licencí :-) Jenomže furt nějak nemám chuť pustit se do udržovaných stránek.
peta
Profil *
Fred: Tu klavesnici mas zajimave. Nevim, proc tam mas ten DOM eventListener...
Tu klavesnici bych asi prehodil:
---
function klavesa(e)
{var k;
if (!e) e=window.event;
k=(e.which)?e.which:e.keyCode;
---
which je kratsi, proto bych jej dal do podminky :)
Fred
Profil
Nevim, proc tam mas ten DOM eventListener Koukal jsem, že vždycky používáš tuhle
function objGet(x)
{if (typeof x=='string') with (document){
if (Boolean(getElementById)) x=getElementById(x);
else if (Boolean(all)) x=eval('all.'+x);
else if (Boolean(layers)) x=layers[x];
else x=null;}return x;}
No a ta funkce co používám já function addEvent(obj,evType,fn) ... dělá v podstatě to samý. Ta tvoje fce jestli jí teda úplně chápu by měla fungovat i v nevyzpytatelných vykopávkách jakoé je NN4 a IE4 no a já tzhle prohlížeče touhle funkcí jednoduše odstřihnu, protože stejně neumí DOM. V nich se jednoduše zobrazí stránka bez js. S tou tvojí funkcí se pravděpodobně zhroutí. Výhoda dvě je ta, že oproti prostému window.onload=funkce , tady s touhle dokonalou funkcí můžu mít onloadů kolik chci a nemusím se příliš zabývat tím, že by se dvě funkce mezi sebou mlátili. Když tak tady je o tom víc http://www.scottandrew.com/weblog/articles/cbs-events nebo tady http://www.czv.com/konsensfabrik/TengoodpracticesforwritingJavascript/ , ale já se pořád jenom učím a jde to hrozně pomalu
Fred
Profil
Možná ještě tohle čtení bude lepší zdůvodnění proč to používám http://www.bobbyvandersluis.com/articles/goodpractices.php
http://www.digital-web.com/articles/separating_behavior_and_structure_ 2/
peta
Profil *
Fred: S tim zhroucenim bych si nebyl tak jist, bracha ma IE5 a v poho. Nicmene oki, nezkoumal jsem, k cemu tam ten event listener mas. Jen mi bylo divny, ze jej nevyuzijes i pro klavesnici.

Jo, ted jsem vstal, a napadlo mne, proc tam generujes tlacitka? Vzdyt muzou byt dole napevno. Pripadne jim menit pouze visibilitu nebo disablovani.
<div id=hlavni>
<div>
text
</div>
<form>
tlactika
</form>
Fred
Profil
Jo to mám v plánu, udržet je konstantně na jednom místě, aby se neposouvaly spolu s obsahem. Asi span{position:absolute;right:0;bottom:0;}, nebo tak nějak, ale zatím nevím jak to líp ostylovat. V IE5 to funguje v pohodě, ta fce odřezává čtyrkové verze NN4 a IE4.
Toto téma je uzamčeno. Odpověď nelze zaslat.