Avatar billede jonas_h Nybegynder
23. maj 2008 - 13:29 Der er 20 kommentarer og
1 løsning

Placering af element ud fra andet element.

Jeg har en tekstboks hvor jeg i forhold til denne tekstboks skal placere et andet element. Dette er nødt til at blive gjort via css/javascript, da jeg ikke har direkte adgang til koden (Det er et sharepoint-system).

Det er lavet på en rigitg dårlig måde da alt er opbygget i tables og jeg kan ikke bruge offset.Left-løkke-tricket.

Er der nogle som har forslag?
Avatar billede w13 Novice
23. maj 2008 - 13:36 #1
Kan du ikke finde tekstboksens placering, selvom den ligger i en tabel, med:

document.getElementById("textboksen1").offsetLeft
?
Avatar billede jonas_h Nybegynder
23. maj 2008 - 13:39 #2
Nope, den returnerer 0. Og prøver jeg at køre alle parent elementer igennem får jeg 0 hver gang. Forsåtr det ikke :S
Avatar billede showsource Seniormester
23. maj 2008 - 13:40 #3
Du kan vist bruge noget herfra:
http://www.eksperten.dk/spm/796670
Avatar billede jonas_h Nybegynder
23. maj 2008 - 13:46 #4
Desværre ikke.. Har prøvet det med at loope gennem alle parents.
Avatar billede w13 Novice
23. maj 2008 - 13:46 #5
Og tekstboksens position er ikke fast? :)
Avatar billede jonas_h Nybegynder
23. maj 2008 - 13:52 #6
Ved ikke helt hvad du mener? Problemet er, at det er en side hvor der kan tilføjes elementer som fde har lyst, så at give elementet en absolut position går i kage hvis de tilføjer noget.
Avatar billede w13 Novice
23. maj 2008 - 13:53 #7
_Skal_ det placeres med position? Det kan ikke bare indsættes ved siden af?
Avatar billede jonas_h Nybegynder
23. maj 2008 - 13:54 #8
Som jeg skrev, har jeg ikke adgang til koden hvor det bliver placeret.. Så det er nødvendigt med position.
Avatar billede w13 Novice
23. maj 2008 - 13:55 #9
Hvis du kan styre position, vil du også kunne indsætte det ved siden af med DOM.
Avatar billede w13 Novice
23. maj 2008 - 13:56 #10
Hvordan er det så, at du lige nu bruger din JavaScriptkode, når du ikke har adgang til koden?
Avatar billede jonas_h Nybegynder
23. maj 2008 - 13:58 #11
Det er en aspx side, som jeg har adgang til... Det eneste denne aspx side indeholder er et user control og det er i dette user control alt bliver genereret - og dette har jeg ikke adgang til.
Avatar billede w13 Novice
23. maj 2008 - 13:59 #12
Ok. Men ligesom du kan positionere noget med JavaScript, kan du jo også indsætte det bestemte steder i koden med Document Object Model.
Avatar billede jonas_h Nybegynder
23. maj 2008 - 14:02 #13
Det må jeg lige sætte mig ind i - har aldrig brugt det før :S
Avatar billede w13 Novice
23. maj 2008 - 14:04 #14
Ok.
Hvilket element er det, som skal placeres? Og hvor ligger det i koden?
Avatar billede jonas_h Nybegynder
23. maj 2008 - 14:29 #15
Det er en select. Det ligger lige under tekstboksen faktisk, men det er lavet på en eller anden underlig microsoft-måde så hvis jeg laver det til position:relative, bliver det ikke vist. Og z-index hjælper ikke på noget. Det er en select som kun kommer frem når der enten skrives i tekstboksen eller trykke på et img
Avatar billede w13 Novice
23. maj 2008 - 14:32 #16
Hmm, ja det lyder lidt mærkeligt.

Vi har vel ikke mulighed for at se det?
Avatar billede jonas_h Nybegynder
23. maj 2008 - 14:33 #17
Nej desværre, skal gennem en citrix-forbindelse hvis det er. Men har lavet en løsning nu, hvor den er placeret korrekt - så må de helst ikke indsætte noget ovenfor :) Det er heldigvis en form, så chancen for at der bliver indsat en masse er lille.
Avatar billede w13 Novice
23. maj 2008 - 14:34 #18
Ok. Jamen hvis det er løst, kan du jo oprette et svar og acceptere det, så spørgsmålet lukkes og du får pointene igen. =)
Avatar billede jonas_h Nybegynder
23. maj 2008 - 14:37 #19
Nu har du brugt så meget tid på det, så du er velkommen til at smide et svar :)
Avatar billede w13 Novice
23. maj 2008 - 14:38 #20
;)
Avatar billede olebole Juniormester
23. maj 2008 - 16:53 #21
<ole>

Du kan finde positionen på et ikke-positioneret element med:

function getPos(elm) {
  for(var zx=zy=0;elm!=null;zx+=elm.offsetLeft,zy+=elm.offsetTop,elm=elm.offsetParent);
  return {x:zx,y:zy};
}

var oPos = getPos(document.getElementById("ditElementsID"));
alert("Elementets position er: " + oPos.x + " , " + oPos.y);

Så skulle du vel kunne placere et element i forhold til dette(?)

/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

IT-JOB

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Ingeniør til Satellitkommunikation

Netcompany A/S

Network Engineer

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Bliv en del af vores nye mobiludviklingsteam i Cyberdivisionen i Hvidovre

Netcompany A/S

IT Consultant