Avatar billede sesso Nybegynder
24. oktober 2007 - 18:53 Der er 9 kommentarer og
1 løsning

Hjemmelavede element funktioner

Hej,
jeg er lidt i vildrede her... Jeg har før set "hjemmelavede element funktioner", men jeg ved ikke lige hvordan man selv kreere sådanne. Når jeg siger "hjemmelavede element funktioner", mener jeg, at hvis  jeg har lavet en funktion der hedder "applySomething", som f.eks. indeholder:

this.style.backgroundColor = '#ffff00';

Så ved f.eks. at sige

document.getElementsByTagName('div')[2].applySomething;

bliver applySomething-funktionen kaldt med det angivne div-element som parent.
Jeg ser nemlig stor bruglighed i at lave sådanne funktioner, for at lette forskellige opgaver. F.eks. kunne man skrive:

document.getElementsByTagName('div')[2].applySomething('#ffff00','roundBorders');

og så har man et element med runde kanter og en gul baggrundsfarve.

Hvordan laver man sådan noget?
Avatar billede soerenlyn Nybegynder
24. oktober 2007 - 19:03 #1
Kan du ikke bare lave en function hvor du også overfører element som parameter, i stedet for at skrive det før funktionen ?
Avatar billede olebole Juniormester
24. oktober 2007 - 19:05 #2
<ole>

Det har du ikke set lavet cross-browser  :)

/mvh
</bole>
Avatar billede olebole Juniormester
24. oktober 2007 - 19:06 #3
Du kan sagtens prototype på objekter, du selv laver, men ikke på DOM-elementer
Avatar billede sesso Nybegynder
24. oktober 2007 - 19:07 #4
Det er ikke noget kan virke ordenligt (cross-browser), eller hvad?
Avatar billede olebole Juniormester
24. oktober 2007 - 19:08 #5
Nej
Avatar billede sesso Nybegynder
24. oktober 2007 - 19:10 #6
Jamen så vil jeg da smide den idé helt væk:D
Tak:P

Smid et svar, Ole:)
Avatar billede olebole Juniormester
24. oktober 2007 - 19:16 #7
Du kan kun gøre det i FF ... f.eks:
    HTMLElement.prototype.fooBar = function(s){alert("fooBar: " + s)};

    document.getElementById("gnu").fooBar("En eller anden streng ...");
Avatar billede olebole Juniormester
24. oktober 2007 - 19:18 #8
- og du kan også specificere yderligere:
    HTMLDivElement.prototype.fooBar = function(s){alert("fooBar: " + s)};

Så virker det kun på div-elementer ... men stadig kun i FF
Avatar billede sesso Nybegynder
24. oktober 2007 - 19:25 #9
Men at det virker i Firefox, er ikke særligt brugbart ... En hjemmeside skulle jo gerne kunne ses i alle browsere, hvis muligt:)
Avatar billede olebole Juniormester
24. oktober 2007 - 21:40 #10
Absolut enig! En one-browser løsning er en ikke-løsning. Tak for points  ;o)
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