Autor | Zpráva | ||
---|---|---|---|
Měsíček Profil |
Zdravím, začal jsem se učit DOM a už s ním mám na začátku problémy :) na této adrese jsou udělány 2 divy, které mění pozadí při najetí, jenže jsem to udělal tak nešikovně, že pokud chci, aby nějáký div měnil svou barvu po najetí/odjetí musím mu přiřadit logicky id a událost, ale rád bych to udělal tak, abych nemusel každému to id přidávat, pomohli by jste mi nebo alespoň nasměrovali?
|
||
peta Profil |
#2 · Zasláno: 13. 3. 2008, 13:36:32
objekt.parentNode
objekt.childNodes()[0] objekt.getElementsByTagName('DIV')[0] pak staci predavat this function xxx(objekt) {...} on... = xxx(this,0) on... = xxx(this,1) |
||
los Profil * |
#3 · Zasláno: 13. 3. 2008, 13:41:34
V obsluhách udalostí môžeš použiť this namiesto identifikátoru: onmouseover="change(this)".
Vo funkcii change môžeš potom pracovať rovno s tým prvkom: a.style.background = "yellow". Prípadne môžeš obsluhovať onmouseover a onmouseout iba v nadradenom elemente. Napr. pomocou className si označíš elementy, v ktorých chceš meniť pozadie a v obslužnej funkcii zistíš, či sa tá udalosť vyskytla vnútri toho označeného elementu. Záleží od štruktúry, ak to chceš robiť napr. pre všetky divy vnútri jedného rodičovského prvku, tak nemusíš používať ani className. Napr. jedna z možností: function changeBackground(color) { return function(e) { e = e || window.event; for (var content = e.target || e.srcElement; content; content = content.parentNode) if (content.className == "content") { content.style.background = color; break; } } } document.onmouseover = changeBackground("yellow"); document.onmouseout = changeBackground("white"); |
||
Měsíček Profil |
#4 · Zasláno: 13. 3. 2008, 13:54:18
Losi díky, to je ono, ale měl bych dotaz .. je i toto DOM? (omlouvám se za takovou blbou otázku, ale o JS/DOM nevím skoro nic.)
|
||
los Profil * |
#5 · Zasláno: 13. 3. 2008, 16:09:55
DOM je definované rozhranie, pomocou ktorého sa dá pristupovať k dokumentu - pridávať/uberať elementy, meniť ich atribúty a pod. Každý prehliadač má svoj vlastný objektový model dokumentu, pričom existuje aj W3C špecifikácia DOMu.
Takže odpoveď je: Používa sa tam aj DOM. |
||
Chamurappi Profil |
#6 · Zasláno: 13. 3. 2008, 16:35:19
Reaguji na Měsíčka:
Do DOMu spadá vše, co není přímo součástí JS. Sám JavaScript neumí vlastně nic. Jakákoliv viditelná akce je změna v DOMu. DOM v prohlížečích je spíše WOM, protože nejvyšším objektem v hierarchii není document, ale window. |
||
Měsíček Profil |
#7 · Zasláno: 14. 3. 2008, 13:56:52
los, Chamurappi
Díky za vysvětlení. |
||
Leo Profil |
#8 · Zasláno: 14. 3. 2008, 14:06:34
Jeste doplneni k JS vs. DOM. JavaScript dnes muze bezet i v pdf dokumentu, nebo v aplikacich od Adobe jako je Photoshop apod. Zatimco JS (presneji jadro javascriptu, kde jsou krome jineho treba fce pro praci s retezci, mat. fce apod.) je stejne, zpusob pristupu k castem dokumentu, jejich vlastnostem, nebo metody pro zmeny v dokumentu, ted DOM, jsou uplne jine. Leo
|
||
lamatér Profil * |
#9 · Zasláno: 15. 3. 2008, 12:03:12
jinak by na to ani nebyl JS potřeba... šlo by to jen přes css vlastnost
:hover jako je u odkazů nejelo by to sice v IE <7 ale jinak všude |
||
vertigo4 Profil |
#10 · Zasláno: 15. 3. 2008, 12:21:56
lamatér
hmm, vskutku zajímavý postřeh |
||
Měsíček Profil |
#11 · Zasláno: 15. 3. 2008, 13:19:21
lamatér
Tak to se neboj, (X)HTML a CSS ovládám natolik dobře, abych si udělal vše co chci. Jde mi jen o ten Javascript/DOM, který se chci naučit. |
||
Časová prodleva: 16 let
|
0