Avatar billede chrisbuchholz Nybegynder
24. januar 2009 - 22:39 Der er 8 kommentarer og
1 løsning

Hvad er det her for trolddom?

Hej,

jeg stødt på noget kode mange gange, når jeg har kigget i forskellige scripts, men jeg har aldrig rigtigt forstået hvordan det fungerer.

$('#page').css('width', newWidth);
$('#footerPage').css('width', newWidth);

Det kan eksempelvis se sådan der ud, og jeg går ud fra der bruges et eller andet library eller sådan noget, og jeg kan selvfølgelig godt regne ud hvordan det bruges, men ikke hvordan det virker.
Det er specielt $(*) delen som jeg har lagt mærke til mange steder, hvor folk putter $ foran ting og sådan, men jeg har aldrig fundet ud af hvorfor.
Avatar billede Slater Ekspert
24. januar 2009 - 23:10 #1
$ er en funktion der bruges i flere libraries (bl.a. Mootools og jQuery. Det du har pastet ind er jQuery) som en slags erstatning for document.getElementById();

jQuerys version bruger dog CSS-selectors til at vælge elementer med. Dvs. Hvis du skriver $('#page').fisk(), så kører du funktionen fisk() på elementet med id="page".
Hvis du skriver $('a').fisk(), så kører du funktionen fisk() på alle <a>-tags.
Avatar billede Slater Ekspert
24. januar 2009 - 23:16 #2
.. og hvis jeg ikke forklarede det godt nok, så er $ bare en funktion. Der er intet trolddom over den. Du kan selv lave en simpel en så let som:

function $(id) {
    return document.getElementById(id);
}

- Naturligvis ikke nær så avanceret som jQuerys, men en langt nemmere måde at få fat i elementer på, end ved at skrive den irriterende lange Javascript-kommando for det.
Avatar billede chrisbuchholz Nybegynder
24. januar 2009 - 23:29 #3
Ah, det giver jo ret god mening!
Men hvad så med når folk smider $ foran en variabel?

$tis = "gul";

Hvad er det smarte ved $ der?
Avatar billede Slater Ekspert
25. januar 2009 - 00:02 #4
Det har jeg ikke selv set, og der er vist ikke noget smart ved det i Javascript. Jeg kan kun forestille mig det er skrevet af PHP/Perl-kodere, der gerne ville have lidt konsistens i deres kode, eftersom alle variabler i de sprog begynder med $.
Avatar billede chrisbuchholz Nybegynder
25. januar 2009 - 00:19 #5
hmm, ja, det har måske ret... Det kunne være sweet hvis der lige kunne komme en der vidste det med sikkerhed forbi, for hvis der er et eller andet ved det, så ville det være træls hvis jeg bare gik og troeder der ikke var:D
Avatar billede Slater Ekspert
25. januar 2009 - 09:20 #6
http://www.authenticsociety.com/blog/JavaScript_DollarSign

Uddrag;
"Let me assure you that there is nothing mysterious about the dollar sign for it is just a variable name."
Avatar billede chrisbuchholz Nybegynder
25. januar 2009 - 09:49 #7
Well, det sætter vidst en prik efter den drøm:D

mange tak for hjælpen, viperine ... smider du et svar?
Avatar billede Slater Ekspert
25. januar 2009 - 09:59 #8
Gerne :)
Avatar billede olebole Juniormester
26. januar 2009 - 09:27 #9
<ole>

Problemet er, at i ECMAScript, som er grundlaget for JavaScript, er $ forbeholdt maskinkode, så det er en rigtig skidt mode, mange kodere ligger under for

/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