Avatar billede cybergyf Nybegynder
15. april 2005 - 00:29 Der er 10 kommentarer

Events til skjult DIV

Hej, Jeg vil høre om der er nogen, der kender en måde at få en event til at fortsætte gennem et layer til et layer nedenunder (hverken et child eller parent layer, men et sideordnet layer, der blot har et lavere z-index)?

Situationen er, at jeg har har to layers, hvor det ene ligger ovenpå det andet og jeg vil meget gerne invoke eventhandlers for de underliggende layers ved mouseover, men det øverste layer ligger "i vejen"... nogen der kender en måde enten at:

- få et layer til at ignorere events, så underliggende layers får dem i stedet for?

- eller få et layer til at route eventen til et underliggende layer (som ikke kan få et id-tag)?
Avatar billede dbangx Nybegynder
15. april 2005 - 08:00 #1
det burde være nemt nok... du fanger eventen i den øverste, så kalder du en metode med x og y koordinat for lokationen af musen.
metoden traverserer gennem alle layers, mener du kan bruge: document.layers, og tjekker efter om de også ligger på x,y - > dermed har du det
Avatar billede roenving Novice
15. april 2005 - 13:27 #2
Men du må da på en-eller-anden måde kende de elementer, hvor du skal sende eventen videre til ?-)

-- selvfølgelig kan man lave en funktion, som finder andre elementer, som har samme position, men det bliver lidt langhåret at opstille regler for hvornår et element skal godkendes til at overtage eventen !-)

-- og hvorfor kan du iøvrigt ikke give dem et id ?o]
Avatar billede cybergyf Nybegynder
15. april 2005 - 14:25 #3
De underliggende elementer er omkring en pixel store og der er gerne et par hundrede af dem (bruges til at tegne grafik med javascript)... de kan selvfeølglig godt navngives men jeg er ikke sikker på, at det kan løse mit problem?
Avatar billede roenving Novice
15. april 2005 - 15:01 #4
Hvordan er de lagt på plads ?-)
Avatar billede cybergyf Nybegynder
15. april 2005 - 15:13 #5
Oprindeligt (jeg er i færd med at bygge lidt rundt om problemet) er de lagt i et layer, der holder "linjen" som de mange små layers danner... Lidt sådan her:
------
|\  |
| \  |
|  \ |
|  \|
------

"Linjen" er den skrå... De er smidt ind med thelayer.insertAdjacentHTML og positioneret med css for hver enkelt.

For nu at beskrive hele problemet, så er det at jeg prøver at lave en onmouseover-event på "linjen" bare, og det virker fint, hvis der kun er et layer... men hvis man laver to linjer, der kryder hinanden så... ja, så opstår mit spørgsmål :)
Avatar billede cybergyf Nybegynder
15. april 2005 - 15:14 #6
Pokkers at den ikke bruger monospaced font her... men håber meningen er forståelig... :)
Avatar billede roenving Novice
15. april 2005 - 15:21 #7
For at prøve at lave det (hvilket jeg ikke kan love, at jeg får tid til idag !-), er det nødvendigt at have et eksempel, og da det er omfattende at bygge op, gider jeg ikke selv at starte forfra !o]
Avatar billede cybergyf Nybegynder
15. april 2005 - 15:28 #8
Hvis du har mod på at kigge på, det, vil jeg straks producere et!
Avatar billede cybergyf Nybegynder
15. april 2005 - 17:27 #9
Det er lidt svært at få skilt ud af alt det serverside script det er roddet sammen med, så det bliver først i morgen.
Avatar billede olebole Juniormester
15. april 2005 - 19:31 #10
<ole>

Når du bruger insertAdjacentHTML, fungerer scriptet jo kun i IE ... hvorfor så ikke bruge VML, der fungerer i IE og netop er beregnet til at tegne med. At 'tegne' med DHTML har aldrig været en god idé ... det bliver meget let urimeligt tungt  :)

/mvh
</bole>
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester