Kezdőlap › Fórumok › Programozás › Javascript és az ablakok
- This topic has 10 hozzászólás, 4 résztvevő, and was last updated 18 years, 10 months telt el by
gabaman.
-
SzerzőBejegyzés
-
2006-07-27-10:30 #2066838str2etboy wrote:Már elkezdtem megírni a kódot. Addig eljutottam, h az ablakok objektumok, amiknek vannak eventjei a mozgatáshoz. Amikor viszont 2 ablak van, csak az egyiket tudom mozgatni, a másikat nem. Mintha annak eltûntek volna az event handlingjei.
Amikor létrehozol egy ablakot és nem vizsgálod meg, hogy már létezik-e egy azonos nevû (id) elem. De nem ez a baj. A win() egy statikus függvény, ami nem adja át a paramétereit az eventek kezeléséhez, nem dob hibaüzenetet?.
2006-07-27-13:48 #2066839Nos, régen használtam javascriptet. :closedeyes:
Az e.id helyett e.target.id kell, de az IE természetesen mást használ (srcElement). Ezzel ki lehet vinni a beágyazott függvényt. Viszont nem ez okozza a hibát. A „document.body.innerHTML += str;” törli a body elemeit (teljesen és az összeset!), majd újragenerálja. Ezért vesznek el az eventek. Ezzel cseréld le, és menni fog (kipróbáltam):
Code:var table = document.createElement(‘DIV’);
table.innerHTML = str;
document.body.appendChild (table);Ráadásul néhány böngészõ nem adja át az event paramétert…
Code:(..) function (e)
{
if (!e) var e = document.event;(…)
}2006-07-27-14:02 #2066840Fú…
Erre nem is számítottam, h ilyen gyorsan ilyen mindenre jó megoldást kapok. :rolleyes: Köszi! Mûködik… De azért még majd nyaggatlak egy kicsit a bajaimmal, mert sztem lesz még.
2006-07-27-14:26 #2066841Azt a rétegesdit hogyan is kell érteni? Nem tudom elképzelni, h hogyan készítsek 2 réteget. Z-index-szel? Meg a már regisztrált ablakok nyilvûntartására milyen módszert javasolsz? Array-ekben tároljam az adatait?
2006-07-27-20:22 #20668422006-07-27-23:30 #2066843str2etboy wrote:Azt a rétegesdit hogyan is kell érteni? Nem tudom elképzelni, h hogyan készítsek 2 réteget. Z-index-szel?A HTML/CSS párost okos emberek készítették, de nem tudom megérteni, a rétegeket egy fércmunka helyett miért nem készítették el olyan szinten, mint a többi részt. Pedig minél látványosabb egy javascript-es oldal, annál többször használnak rétegeket. Van egy nem szabványosított LAYER tag, amit a megértéshez könnyebben lehet használni. Ugyanis ha egy stílusban használod a z-index értéket, akkor autómatikusan létrejön egy láthatatlan réteg (nem különáló elem). Tehát, neked ez van:
Code:document
body
input
table (ablak)
tr (fejléc)
tr (törzs)
table (ablak)
tr (fejléc)
tr (törzs)Ha viszont használod a z-index értéket, akkor így jobban megérted:
Code:document
body
input
layer z-index = XXX
table (ablak)
tr (fejléc)
tr (törzs)
layer z-index = XXX
table (ablak)
tr (fejléc)
tr (törzs)2006-07-30-11:37 #20668442006-07-30-13:30 #2066845Nah.. Már meg is van a következõ kérdésem. ;D
Mivel ezzel a scripttel dinamikusan módosítom a HTML oldal tartalmát arra gonoldtam, ha hozzá is tudok adni egy elementet, akkor el is lehet azt távolítani, nem? Meg is találtam a Mozilla DOM helpjében a removeChild parancsot, de nem nagyon akar menni. Akkor mûködik, ha egy olyan részt akarok eltüntetni, ami már eddig is létezett és nem dinamikusan lett létrehozva. Mi lehet a bibi? Mi alapján határozzam meg, hogy melyik részt akarom eltenni láb alól, ha a document.getElementById(„dinamically_created_elemen_id”) verzió nem megy?2006-07-30-13:36 #2066846Oké.. Bocsi, h megint nem néztem körül eléggé, de közben megtaláltam a választ:
Code:function remove(id){
var mit = document.getElementById(id);
var parent;
parent = mit.parentNode;
parent.removeChild(mit);
}2006-07-31-16:21 #2066847A két réteg a „kézi” LAYER tag alkalmazására vonatkozott, de ahogy megvalósítottad a rétegeket a stílusok segítségével, úgy annyi réteged van, ahány ablakod. Viszont csak 2 rétegbe szervezed õket, így az alsó ablakok között nem lesz helyes a takarás. Kellene még egy tömb, ahol a rétegek számát (z-index) tartod nyilván. Ha 2-tõl kezded szamozni a rétegeket, akkor lehetne az egyes az óra és a menük számára kialakítva.
-
SzerzőBejegyzés
- Be kell jelentkezni a hozzászóláshoz.
legutóbbi hsz