JavaScript != Java (A JavaScript nem összekeverendő a Javával, két különböző programozási nyelvről van szó!)
Gyorskeresés
Legfrissebb anyagok
- Bemutató Spyra: akkus, nagynyomású, automata vízipuska
- Bemutató Route 66 Chicagotól Los Angelesig 2. rész
- Helyszíni riport Alfa Giulia Q-val a Balaton Park Circiut-en
- Bemutató A használt VGA piac kincsei - Július I
- Bemutató Bakancslista: Route 66 Chicagotól Los Angelesig
Általános témák
LOGOUT.hu témák
- [Re:] eBay-es kütyük kis pénzért
- [Re:] [D1Rect:] Nagy "hülyétkapokazapróktól" topik
- [Re:] [sziku69:] Szólánc.
- [Re:] [Luck Dragon:] Asszociációs játék. :)
- [Re:] PLEX: multimédia az egész lakásban
- [Re:] [sziku69:] Fűzzük össze a szavakat :)
- [Re:] Elektromos rásegítésű kerékpárok
- [Re:] [btz:] Internet fejlesztés országosan!
- [Re:] [plevips:] Építkezünk 3. rész (2024)
- [Re:] [gban:] Ingyen kellene, de tegnapra
Szakmai témák
PROHARDVER! témák
Mobilarena témák
IT café témák
GAMEPOD.hu témák
Téma összefoglaló
Hozzászólások
EmberXY
addikt
Elnézést, hogy belekontárkodok, de hátha tudok én is segíteni, ha már erre járok..
Ha jól értelmezem a dolgot, akkor 3 értéket szeretnél bekérni, amikkel azután a script elvégzi a számításokat..
Én 3 szövegmezőt adnék meg, az adott űrlapon, értelemszerűen a 3 érték bekéréséhez, testreszabás már részletkérdés, csak legyen elnevezve mindegyik (mezo1, stb) majd a váltózókat úgy hoznám létre, hogy
var a=parseInt(document.form_neve.mezo1.value);
var b=parseInt(document.form_neve.mezo2.value);
var c=parseInt(document.form_neve.mezo3.value); (ha tizedestört is lehet az érték, akkor parseFloat...), így a változók azt az értéket fogják tartalmazni, amit beírtál az egyes mezőkbe..
Aztán persze különféle ellenőrzéseket be lehet iktatni, hogy csak helyes formátumot vihessenek a mezőbe, ne írkálhassanak be mindenféle karaktereket, stb, de ez már részletkérdés..
Remélem, hogy segítettem.
[ Szerkesztve ]
Up the Irons!
j0k3r!
senior tag
hello mindenkinek!
vannak divjeim:
<div id="fodiv">
<div id="bal">szoveg</div>
<div id="kozepso">szoveg</div>
<div id="jobb">szoveg</div>
</div>
az volna a kerdesem, hogy js-ben hogy hivatkozok a kozepso div backgroundjara. (meg akarom valtoztatni egy onclick esemeny soran)
a segitsegetek elore is koszonom.
some men just wanna watch the world burn...
j0k3r!
senior tag
megoldottam:
<script language="javascript" type="text/javascript">
function szincsere(color)
{
var szin=color;
document.getElementById("kozepso").style.background=szin;
}
</script>
csak googlen sokhelyen "background-color" -t irtak...
some men just wanna watch the world burn...
Zoli1222
őstag
Köszi, de végül window.prompt-tal oldottam meg.
EmberXY
addikt
Nincs mit, amit írtam, az végülis akkor lenne célszerű, ha konkrét űrlapon dolgozunk (--a kódban, amit írtál, a js hoz létre egy formot, tehát nincs alapból megadva az űrlap--), ott aztán akármit be lehet kérni, rengeteg módon meg lehet hívni az előre megírt js függvényeket, én általában mindig ilyen űrlapokkal szoktam dolgozni, ha adatokat kell bekérni.
Up the Irons!
shev7
veterán
"csak googlen sokhelyen "background-color" -t irtak..."
hat nem mindegy, hogy js vagy css. Kicsit zavaro lehet de mas a propertyk neve.
''Gee, Brain, what do you want to do tonight?'' ''The same thing we do every night, Pinky: Try to take over the world!''
Sk8erPeter
nagyúr
Azért írnak background-color-t, mert az konkrétan csak a színt módosítja CSS-ben, és az is helyes, csak backgroundColor formában elérhető (mindjárt bővebben). A sima background-dal több dolgot is lehet módosítani, lásd ezt: [link]. Pl. megadhatsz egy színt, és még mellé egy url-t, ahol az a kép található, amit a szín mellett még be akarsz pakolni háttérbe, ahogy a w3schools példája is írja:
body {background: #00ff00 url('smiley.gif') no-repeat fixed center;}
A sima background-color is helyes, de remélem tudod, hogy JavaScriptben nem mindegy, hogy nagy- vagy kisbetűt írsz, és a JavaScript-es szintaktikának megfelelően adod-e meg, a background-color tulajdonságot így tudod megadni ([link] - JavaScript syntax):
object.style.backgroundColor="#00FF00"
Tehát nem kötőjellel, hanem egybe, és nagy C-vel adod meg (backgroundColor).
Ezekre figyelni kell, különben nem fog működni a kódod. Mindig nézd meg a helyes szintaktikát - például a w3schools-on (itt elég áttekinthető és könnyen megtalálható) -, mert a JavaScriptes stílusmódosítások szintaktikája sokszor nem egyezik meg a CSS szintaktikájával (de hasonló).
[ Szerkesztve ]
Sk8erPeter
j0k3r!
senior tag
koszonom szepen mindkettotoknek. majd odafigyelek a kis/nagybetukre, azthiszem valami komolyabb fejlesztokornyezetet be is szerzek ubuntura.
tudom, hogy nem ide tartozik.de : erre otlet?
some men just wanna watch the world burn...
Zoli1222
őstag
var a = window.prompt("Add meg \"a\" értékét :", "<A szám:(ne feledd az \"a\" nem lehet nulla)>");
if (a==0){
alert("Mondom nem lehet NULLA!");
onClick=history.go();
}
var b = window.prompt("Add meg \"b\" értékét :", "<A szám>");
var c = window.prompt("Add meg \"c\" értékét :", "<A szám>");
Mi hiányzik még belőle, h hiba nélkül fusson le?
vagy a onClick=history.go(); helyett mit kellene beírni?
Mert ha 0-t írok be akkor figyelmeztet, h nem lehet 0 és újra is kezdi, de megmarad az első lekérdezés is.
Sk8erPeter
nagyúr
onclick="this.style.backgroundColor='#FF0000';" //#FF0000 helyére a saját kívánt színed
Sk8erPeter
Sk8erPeter
nagyúr
Minek kell neked a history.go() ?
onClick=history.go();
Ezzel mit akartál?
Az ilyenek helyett:
"Add meg \"b\" értékét :"
írhatod így is:
'Add meg "b" értékét :'
És máris áttekinthetőbb. (A változtatás itt a sima aposztrófban rejlik, így már használhatod az idézőjelet.)
[ Szerkesztve ]
Sk8erPeter
Zoli1222
őstag
1. Csak azt, h újra kezdje az a érték megkérdezésével.
2. Innentől így teszek majd az aposztrófokkal.
Az az igazság, h js-t most kezdem tanulni, és sok utasítást nem ismerek, és most még csak a neten tudok utána nézni dolgoknak.
Küldök egy pü-t.
shev7
veterán
"Csak azt, h újra kezdje az a érték megkérdezésével."
akkor tedd be egy ciklusba. Addig hivod a promptot, amig "a" nulla....
''Gee, Brain, what do you want to do tonight?'' ''The same thing we do every night, Pinky: Try to take over the world!''
Zoli1222
őstag
Komolyan!
Miért nem jut ilyen egyszerű megoldás az eszembe?
Egy sima while és meg van oldva a dolog.
Köszi.
j0k3r!
senior tag
sajnos nem megy, a parameterezesnel lehet a gond, ahogy leviszem az egeret a menupontrol egybol visszavaltozik az eredeti szinre (fekete alapon szines betu) :/
ime a kodreszlet:
<head>
<title>Proba menu</title>
<link type="text/css" rel="stylesheet" href="style.css"/>
<script language="javascript" type="text/javascript">
function szincsere(color,melyik)
{
var szin=color;
var nev=melyik;
document.getElementById("kozepso").style.background=szin;
//document.write("melyik = "+nev+"<br>");
document.getElementsByClassName("nev").style.backgroundColor=szin;
document.getElementsByClassName("nev").style.Color='#000000';
}
</script>
</head>
<body bgcolor="Black">
<p align="center"><img src="lol2.png"></p>
<ul id="menu">
<li class="piros"><a onclick="szincsere('#FF0000','piros');">PIROS</a></li>
<li class="narancs"><a onclick="szincsere('#FFA500','narancs');">NARANCS</a></li>
<li class="citrom"><a onclick="szincsere('#FFFF00','citrom');">CITROM</a></li>
<li class="zold"><a onclick="szincsere('#00FF00','zold');">ZOLD</a></li>
<li class="kek"><a onclick="szincsere('#4876FF','kek');">KEK</a></li>
<li class="lila"><a onclick="szincsere('#9400D3','lila');">LILA</a></li>
</ul>
elso probalkozasom par het olvasgatas utan, szoval nem nevetni : )
ha esetleg valamit mashogy csinalnatok, a kritikat szivesen fogadom.
adok kepet is, hatha ez segit:
[ Szerkesztve ]
some men just wanna watch the world burn...
Sk8erPeter
nagyúr
Egy kissé túlbonyolítottad.
A függvény:
<script language="javascript" type="text/javascript">
<!--
function szincsere(color,melyik){
melyik.style.backgroundColor=color;
}
// -->
</script>
A lista:
<ul id="menu">
<li class="piros"><a onclick="szincsere('#FF0000',this);">PIROS</a></li>
<li class="narancs"><a onclick="szincsere('#FFA500',this);">NARANCS</a></li>
<li class="citrom"><a onclick="szincsere('#FFFF00',this);">CITROM</a></li>
<li class="zold"><a onclick="szincsere('#00FF00',this);">ZOLD</a></li>
<li class="kek"><a onclick="szincsere('#4876FF',this);">KEK</a></li>
<li class="lila"><a onclick="szincsere('#9400D3',this);">LILA</a></li>
</ul>
Működik.
[ Szerkesztve ]
Sk8erPeter
j0k3r!
senior tag
koszonom szepen! kicsit meg alakitottam rajta, de mukodik!!!
<script language="javascript" type="text/javascript">
function szincsere(hattersz, betusz, melyik)
{
document.getElementById("kozepso").style.background=hattersz;
document.getElementById("kozepso").style.color=betusz;
melyik.style.backgroundColor=hattersz;
melyik.style.color=betusz;
}
</script>
</head>
<body>
<p align="center"><img src="lol2.png"></p>
<ul>
<li id="piros"><a onclick="szincsere('#FF0000' ,'#000000', this);">PIROS</a></li>
<li id="narancs"><a onclick="szincsere('#FFA500' ,'#000000', this);">NARANCS</a></li>
<li id="citrom"><a onclick="szincsere('#FFFF00' ,'#000000', this);">CITROM</a></li>
<li id="zold"><a onclick="szincsere('#00FF00' ,'#000000', this);">ZOLD</a></li>
<li id="kek"><a onclick="szincsere('#4876FF', '#000000', this);">KEK</a></li>
<li id="lila"><a onclick="szincsere('#9400D3', '#000000', this);">LILA</a></li>
</ul>
most mar csak 1 gondom van, ha mind a 6 menupontot vegignyomom, akkor mind a 6 "vilagit", szoval kellene valami elagazast irnom, hogy egyszerre csak 1 legyen aktiv.
egy kis segitseget tudnal adni az elindulashoz? (ne kesz megoldast, mert gondolkodni szeretnek rajta)
elore is koszonom.
[ Szerkesztve ]
some men just wanna watch the world burn...
j0k3r!
senior tag
ha jol sejtem, akkor a this egy mutato, mint c-ben?!
ugy szeretnem megcsinalni, hogy az onclick esemenyt kibovitenem meg par sorral, ami az eppen kattintas alatt levo menun kivul az osszes menut "default" helyzetbe rakja, es igy mindig csak 1 lesz "szines/aktiv".
namost az volna a kerdesem, hogy this nelkul, hogy tudnek hivatkozni az egyes menuelemekre?
ugy mint itt a "kozepso" div-re:
document.getElementById("kozepso").style.background=szin;
a segitseged elore is koszonom.
some men just wanna watch the world burn...
Sk8erPeter
nagyúr
A this-ről többek közt itt olvashatsz: [link].
Ha nem szeretnél konkrét kódot, csak ötletet, akkor csak annyit mondok, hogy tömb, for ciklus, childNodes. És így még szebb is lesz a kódod.
Sk8erPeter
FixY67
senior tag
Valamit nem értek: www.sonicwall.com
Le van tiltva a javascript. Hogyhogy mégis működik az oldal menüje?
(FF 3.0.6 + Noscript)
Az ilyen szerkezetek:
<li class="tab start" onmouseover="endTabOver('global','off');" onmouseout="endTabOut();">
működéséhez nincs szükség JS-re?
...
Sk8erPeter
nagyúr
Ha le lenne tiltva a JavaScript, NEM működnének a JS-es elemek. Az onmouseover, onmouseout JS-eseményeket hívnak meg, ez nem teljesülhet, ha le van tiltva a JavaScript.
Ha FF alatt tényleg letiltod, neked sem fog működni: Eszközök-Beállítások-Tartalom-JavaScript engedélyezése mellől pipa ki, majd OK. Máris nem fog működni.
Ezek szerint a NoScripted szarul van beállítva.
Sk8erPeter
FixY67
senior tag
Én is így gondoltam (egyébként a FF nem 3.0.6, hanem 3.6), épp ezért érdeklődtem.
Szóval valami nem kerek a noscript körül...
Bíztam benne, hogy csak én vagyok lemaradva ennyire a webes technológiákat illetően és ez már nem JS, hanem valami HTML 10.2 vagy hasonló.
...
FixY67
senior tag
Ez nem nyert... akkor már ketten vagyunk lemaradva...
Kikapcsoltam teljesen a JS-t, ez a menü mégis működik.
...
Yooha
aktív tag
Sziasztok!
Java telepítés közben az alábbi hiba:
Wrapper.createfile Error 3: Nem találja a megadott útvonalat (én nem adtam meg semmit)
Ilyenkor mi van?
Én a kardomat a kezemben hordom. Te a tiédet a szívedben és az elmédben. Ahogy én látom, ez 2:1 fegyverelőny a részedre.
EmberXY
addikt
A google a barátod.
Első nekifutásra..: Search: Wrapper.createfile Error
Én ugyan nem tudom megoldani a problémát, de páran már találkoztak vele, hátha lehet találni valami hasznosat..
[ Szerkesztve ]
Up the Irons!
Sk8erPeter
nagyúr
Én nem érzem magam "lemaradva"...
Hát nem tudom, Te hogy csinálod, mert most épp Ubuntu alól próbáltam ki, és ugyanúgy ha kikapcsolom a JavaScriptet, akkor onnantól már nem megy... Te figyelj, nem lehet egészen véletlenül, hogy a JS kikapcsolása után nem frissítesz? Mert amíg nem frissítesz, addig működni is fog továbbra is a menü a JS kikapcsolása után is...
Egyébként az ilyesmit már meg lehet oldani CSS-sel is, nem muszáj hozzá JavaScript. De az általad linkelt oldal esetében JS-t használnak.
Sk8erPeter
FixY67
senior tag
Mondjuk én Vista alatti FF-t néztem, de most kipróbálom XP alól is egy 3.5-össel, kíváncsi vagyok, ez mit művel.
Szerk: megnéztem. Itt is működőképes marad a menü a JS tiltása után.
Szerk2: még akkor is, ha a JS tiltás után kilépek, majd vissza. Cache törlés után is...
Szóval feladom. Vagy mégis CSS van a dologban - bár az nekem már a kínai kategória.
[ Szerkesztve ]
...
Sk8erPeter
nagyúr
Hát lehet, hogy azon a gépen is fent van az az ominózus NoScript...
Sk8erPeter
EmberXY
addikt
A www.sonicwall.com oldalra gondolsz?
Nekem normál esetben a menükön lépkedve aláhúzott lesz a menüpont, és elékerül egy nyelv megnevezés, ha letiltom a js-t, és frissítés nélkül újra próbálom, nálam az aláhúzás ugyan megmarad, de a nyelveket már nem teszi elé, vagyis letiltja ezt a dolgot, bármiféle cache ürítés nélkül is...és ahogy a pipát visszateszem a js mellé, újból megjeleníti..
Én Win 7 alatt FF 3.6-tal próbáltam.....
[ Szerkesztve ]
Up the Irons!
FixY67
senior tag
Nem teljesen... Nyelveket ott nem is láttam (jelzem, noscript műxik ), csak azt, hogy az egérkurzortól aláhúzottra vált a menüpont, de ha eggyel beljebb mész (pl. http://www.sonicwall.com/emea/), ott a komplett menü működőképes.
...
EmberXY
addikt
Ez tényleg egy fura oldal... számomra is paranormális, de valóban minden műxik tovább.. biztos, hogy JS ez? Még a végén azt hinné az ember, hogy flash..
Egyébként amire én gondoltam, az a képen látszik, odarak egy nyelvet, amit a js letiltása után már nem jelenít meg, ekkor még én is azt hittem, hogy mindent értek, de akkor már ketten vagyunk...
Up the Irons!
FixY67
senior tag
Ezért gyanítom, hogy valahol le vagyunk maradva a HTML-féleségek környékén...
Flash nem lehet, mert az nem műxik, ha le van tiltva a JS.
...
EmberXY
addikt
Hát nincs kizárva, hogy valami kimaradt...
Bár mostanság elkezdtem js-sel foglalkozni, de még rengeteget kell tanulnom, hogy ne érjenek ilyesféle meglepetések...bár így is elég sok fura dologgal találkoztam már, pl hogy megírok egy scriptet, és vagy az IE, vagy a FF nem hajlandó végrehajtani...
Mindig van új a nap alatt, de ezzel a "letiltom, de mégis megy" dologgal bevallom, én sem tudok jelenleg mit kezdeni..
[ Szerkesztve ]
Up the Irons!
Sk8erPeter
nagyúr
Most látom ezt a hsz.-edet: [link]
Eddig a főoldalt mutogattad, hogy ott megjelennek a szövegek, de miért nem ezzel kezdted? Itt a menü megjelenítése CSS-sel van megoldva... Máskor talán legyél egyértelműbb, és akkor hamarabb kapod meg a választ, és nem kell ötezerszer megkérdezni...
Senki nincs lemaradva, csak nem tudtad feltenni normálisan a kérdést. Eddig nem azt mondtad, hogy a http://www.sonicwall.com/emea oldalt kellene bambulni, azonbelül is a menüsor megjelenését, hanem a főlapot linkelgetted...
Sk8erPeter
FixY67
senior tag
Hóttmind1, mert a főoldalon is megváltozik a felirat, ha fölé viszem az egeret.
Úgy értem: kikapcsolt/tiltott JS mellett is.
[ Szerkesztve ]
...
Sk8erPeter
nagyúr
FF-ban Nézet-Oldalstílus-Nincs stílus egészen biztosan megoldja a problémádat...
Sk8erPeter
Sk8erPeter
nagyúr
Most kikerestem neked, konkrétan mi felelős a menü megjelenítéséért:
Forráskód:
229. sor:
<li onmouseout="ddMenuHide();" onmouseover="ddMenuShow('2758','off','global','0.8');" class="tab offmenu" id="dd-menu_2758_lnk"><a href="/emea/2758.html" id="dd-menu_2758_anc"><span>• </span>Partners</a>
<ul id="dd-menu_2758" class="dd-menu">
Ebből a class="tab offmenu" és class="dd-menu" a lényeg: utána a CSS-fájlban ezekre vonatkozóan ez szerepel:
http://www.sonicwall.com/emea/styles_global.css
655. sor (kommentbe tettem, ami a lényeg ez egészből):
.navbar .dd-menu,
.navbar .fo-menu {
display: none; /* EZ A LÉNYEG! */
position: absolute;
top: 2.26em;
left: 0.09em;
z-index: 51;
background: #eee;
border: .09em solid;
border-left-color: #eee;
border-top: none;
border-right-color: #707070;
border-bottom-color: #707070;
background: #c2c2c2;
}
730. sortól:
.navbar .tab.offmenu:hover .dd-menu,
.navbar .tab.onmenu:hover .dd-menu {
display: block; /* EZ A LÉNYEG! */
}
Alapból: display:none; (nem látható), egér fölévitelekor display:block; lesz (megjelenik).
Ennyi a trükk.
----
A főoldalon pedig egyértelműen JavaScripttel oldják meg (tehát szerintem nálad a JavaScript kikapcsolásakor a NoScript valamilyen hibája miatt jeleníti meg, vagy valami egyéb hiba miatt):
Forráskód:
248. sor:
<h5><span id="lang_01" class="lang">English</span><a name="North America" href="/us/" onmouseover="showLang('01');" onmouseout="hideLang();" onClick="SetCookie('site', this.name, exp);"><span class="arrow">»</span> North America</a></h5>
177. sor:
#countryselectlist .lang {
display: none;
width: 12em;
position: absolute;
top: 0.25em;
left: -13em;
text-align: right;
}
Emiatt tehát alapból display:none; van beállítva neki, vagyis nem jelenik meg.
Az onmouseover-re (fölé viszed az egeret) a JavaScript megváltoztatja display:block;-ra (megjelenik, látható), mert meghívja a showLang() függvényt, majd onmouseout-ra (elviszed róla az egeret) ismét display:none lesz a stílus a hidelang() függvény meghívása miatt:
214. sor:
<script language="javascript" type="text/javascript">
var SpanID = '';
function showLang(ID) {
SpanID = ID;
document.getElementById('lang_'+SpanID).style.display = "block";
}
function hideLang() {
document.getElementById('lang_'+SpanID).style.display = "none";
}
</script>
Remélem sikerült tisztázni a kérdést, hogy mitől jelenik meg.
Sk8erPeter
FixY67
senior tag
Köszi. Végeredményben az volt a lényeg, hogy nem csak JS alatt lehet ilyen izgő-mozgó menüket létrehozni.
Ami a főoldalt illeti: totálisan kikapcsolt JS mellett (nem csak noscript, hanem a FF opciók közt letiltott JS mellett is) működik a feliratok változtatása. A nyelv nem jelenik meg mellette, csak ha engedélyezem a JS-t, de aláhúzódik stb. Gondolom, ez is ugyanaz a módszer, mint a belső menü esetén.
(ettől kezdve már csak az a kérdés, hogy eszerint a CSS is tud olyan ártalmas lenni, mint a javascript? )
...
Sk8erPeter
nagyúr
Hát eddig azt hittem, hogy azt mondod, hogy kikapcsolt JavaScripttel is megjelenik a lebegő nyelv... Na de akkor már teljesen egyértelmű, hogy Te a CSS-formázásra gondolsz: ebben nincs semmi misztikum, ma már a legtöbb oldalon többek közt ezzel adják meg az oldal stílusát, kinézetét, a margókat, stb.
A CSS is fejlődés alatt van, az újabb verzióban még több formázási lehetőség lesz elérhető, mint a mostaniban: lekerekíthető sarkok, árnyékolás a "dobozoknak" trükközés nélkül, meg egyebek, amiknek valóban van gyakorlati haszna.
"ettől kezdve már csak az a kérdés, hogy eszerint a CSS is tud olyan ártalmas lenni, mint a javascript?"
Már miért lenne ártalmas? Ezt tényleg nem értem...
Mellesleg a CSS-formázás sokkal elegánsabb tud lenni, mint ugyanaz JavaScripttel, erre legjobb példa a menüknél, ha arra állítasz be stílust, hogy ha egy elem fölé viszed az egeret, akkor egy másik kép jelenjen meg annak háttereként (ha föléviszed az egeret, akkor mondjuk kap egy világosabb háttérszínt a menü adott gombja) - ez JavaScripttel megoldva (onmouseover, onmouseout) az Internet Explorernek még a 8-as változatában is egy kis átmeneti villanást eredményez, vagyis a képváltás viszonylag lassan történik meg, míg CSS-sel megoldva (elem:hover) nincs ilyen probléma (vagy jóval rövidebb a villanás, erre megoldás a következőkben leírt módszer), és a kód is szebb. Ráadásul az is megoldható, hogy a menüpont alap- és világosabb hátterét egy képfájlban egymás mellé/fölé/alá pakold, és amikor föléviszed az egeret, akkor csak arrébb told a megfelelő pozícióba a hátteret, úgy, hogy akkor már a világosabb háttér jelenjen meg - így meg garantáltan nem lesz minimális "villanás" (háttércsere-késés) sem, tapasztaltam.
A CSS nagyon előnyös tud lenni.
Sk8erPeter
j0k3r!
senior tag
hello megint! kicsit elakadtam megint. tudnal valami hasznos leirast adni arrol, hogy js-ben a html elemeire hogy lehet hivatkozni (this nelkul)?
vagy mindig adjak id-ket, aztan document.getElementById("akarmi") ?
ha for ciklus, meg tomb, akkor valoszinuleg valami index alapjan kellene vegigmenni a ciklusnak az adott elemeken, bar lehet rosszul gondolom.
a segitseged elore is koszonom.
some men just wanna watch the world burn...
shev7
veterán
igen, a legegyszerubb, ha azokra az elemekre amikre hivatkozni akarsz, van id-d.
Vagy lehet az un. DOM tree-ben lepkedni: ehhez a nextSiebling, previousSiebling, parentNode, childNodes property-ket lehet hasznalni, de ez elobb-utobb igen csunya, olvashatatlan kodot eredmenyez...
''Gee, Brain, what do you want to do tonight?'' ''The same thing we do every night, Pinky: Try to take over the world!''
Sk8erPeter
nagyúr
Igen, lehet document.getElementById alapján is, egy for ciklussal, és akkor mondjuk egy tömbbe bepakolhatod az id-ket:
var tomb=new Array("ez", "az", "amaz");
for(var i=0;i<tomb.length;i++)
document.getElementById(tomb[i]).style.backgroundColor="red";
Meg persze childNodes-zal is meg lehet oldani, de az valóban átláthatatlan lehet egy idő után, ahogy shev7 is írta.
Sk8erPeter
j0k3r!
senior tag
ma delutan neki is esek. koszonom mindkettotok segitseget!
some men just wanna watch the world burn...
j0k3r!
senior tag
valaki megmondana mi a hiba? en hiaba bamulom nem talalok semmit...
script:
<script language="javascript" type="text/javascript">
function szincsere(hattersz, betusz, melyik)
{
document.getElementById("kozepso").style.background=hattersz;
document.getElementById("kozepso").style.color=betusz;
var nevek=new Array("piros", "narancs", "citrom", "zold", "kek", "lila");
var szinek=new Array("#FF0000", "#FFA500", "#FFFF00", "#00FF00", "#4876FF", "#9400D3");
for(var i=0;i<nevek.length;i++)
{
document.getElementById(nevek[i]).style.backgroundColor=betusz;
document.getElementById(nevek[i]).style.color=szinek[i];
}
melyik.style.backgroundColor=hattersz;
melyik.style.color=betusz;
}
</script>
lista:
<ul>
<li id="piros"><a onclick="szincsere('#FF0000' ,'#000000', this);">PIROS</a></li>
<li id="narancs"><a onclick="szincsere('#FFA500' ,'#000000', this);">NARANCS</a></li>
<li id="citrom"><a onclick="szincsere('#FFFF00' ,'#000000', this);">CITROM</a></li>
<li id="zold"><a onclick="szincsere('#00FF00' ,'#000000', this);">ZOLD</a></li>
<li id="kek"><a onclick="szincsere('#4876FF', '#000000', this);">KEK</a></li>
<li id="lila"><a onclick="szincsere('#9400D3', '#000000', this);">LILA</a></li>
</ul>
probaltam if - else -el is, ami jobban tetszett volna, ha mukodik:
<script language="javascript" type="text/javascript">
function szincsere(hattersz, betusz, melyik)
{
document.getElementById("kozepso").style.background=hattersz;
document.getElementById("kozepso").style.color=betusz;
var nevek=new Array("piros", "narancs", "citrom", "zold", "kek", "lila");
var szinek=new Array("#FF0000", "#FFA500", "#FFFF00", "#00FF00", "#4876FF", "#9400D3");
for(var i=0;i<nevek.length;i++)
{
if(document.getElementById(nevek[i])==melyik)
{
document.getElementById(nevek[i]).style.backgroundColor=hattersz;
document.getElementById(nevek[i]).style.color=betusz;
}
else
{
document.getElementById(nevek[i]).style.backgroundColor=betusz;
document.getElementById(nevek[i]).style.color=szinek[i];
}
}
}
</script>
some men just wanna watch the world burn...
j0k3r!
senior tag
szerintem ebben a sorban van a gond:
if(document.getElementById(nevek[i])==melyik)
es szerintem valami attributum hianyzik a melyik utan, de lehet hogy megint rossz helyen kapizsgalok.
some men just wanna watch the world burn...
Sk8erPeter
nagyúr
Mielőtt elkezdeném kegyetlenül bámulni a kódot, hogy kibogarásszam, mi a hiba, inkább Te írhatnád le, mi a hibajelenség, mi nem működik, mit nem csinál, ne nekünk kelljen már kitalálni. Egyáltalán nem megy, nem vált színt? Amúgy van valami különleges célod azzal, hogy paraméterként is átadod a háttérszínt, meg még külön tömbben is tárolod? Mert ha a "kozepso" elemnek szeretnéd átadni ugyanazt a színt, mint amit kap az aktuális klikkelt elem, akkor tök felesleges paraméterként is átadni (vagy épp a tömb felesleges, ez a Te döntésed).
Sk8erPeter
Sk8erPeter
nagyúr
Igen, az id hiányzik utána.
if(document.getElementById(nevek[i]).id==melyik.id)
//...
Sk8erPeter
j0k3r!
senior tag
az onclick esemeny utan a kozepso div-em hattere megvaltozik. ez jo, de ahogy elmozditom az egermutatot a menupont felol, el is tunik az "inverz" kijeloles, amit a css-ben hoverrel csinaltam a menupontokra.
es igen johogy mondod, szerintem 1 parameter is eleg lesz a 3 helyett. (this marad)
mar javitottam is.
some men just wanna watch the world burn...
Sk8erPeter
nagyúr
Tehát van CSS-sel hover tulajdonság is beállítva, hogy ha föléviszed az egeret, megváltozzon a színe a beállítottra, de azt szeretnéd, hogy menüpontra kattintáskor változzon meg a "kozepso" elem színe olyanra, amilyen a kattintott elemnek CSS-sel a hover-re van beállítva, és a kattintott elemnél meg is maradjon ugyanaz a háttérszín, mint amit CSS-sel hover-rel beállítottál? Csak hogy egész pontosan értsem, mit szeretnél.
Sk8erPeter
j0k3r!
senior tag
pontosan fonok
a kozepso egyebkent egy div. (amivel eddig nem volt gond)
inkabb a menupontoknal van gond, hogy vagy egy se "szinezodik be" vagy pedig a 6 menupontot vegigkattintva mind a 6 "beszinezodik".
beszinezodik==css hover-es kinezet
szerk: esetleg, ha az segitene feltolthetem valahova a css+html filet
[ Szerkesztve ]
some men just wanna watch the world burn...