Umiddelbart kan det jo godt lade sig gøre. Jeg vil dog mene at du skal kalde funktionen test inden dokumentet er loadet (dvs. før eventet $(document).ready kaldes), ellers vil funktionens indhold givetvis ikke rigtig have nogen berettigelse. Dette er dog en teoretisk betragtning, så du må teste det i praksis for at se om min hypotese holder stik :-)
Hvad er det du skal opnå ved denne indpakning af koden?
Umiddelbart ville jeg jo mene det var nemt for dig blot at prøve det og se om det fungerer... Så derfor må jeg antage du spørger fordi du oplever udfordringer med det, eller hvad?
Det eneste jeg lige kan se du skal være opmærksom på er, at din funtion (test) bliver kaldt inden dokumentet er loadet færdig, men ellers burde det fungere således, at du får tilknyttet document-objektet et antal load-handlers svarende til det antal gange du kalder test-funktionen. Disse udføres så i sekvens på load-tidspunktet (givetvis i en vilkårlig rækkefølge, så jeg ville være forsigtig med at gøre nogle antagelser i den forbindelse).
Ja, men det test-funktionen gør, med kaldene til $(document).ready(function() {}) (eller den korte form som du benytter $(funciton(){})), er, at definere hvilke handlinger der skal udføres idet dokumentet meddeler at det er loadet færdig. Efter denne hændelse er koden som sådan "død", da dokumentet antageligt kun loader én gang før næste sideindlæsning. Ikke dermed sagt at koden som er kørt er død, men selve opsætningen af dine slideres vil ikke ske igen på et senere tidspunkt, hvis de er knyttet til onload-handleren.
Det er muligt der ligger mere i dit spørgsmål, men så må du uddybe hvad du forventer, da det ellers er lidt svært at vurdere om det du rent faktisk vil (hvis det ikke kun er et spørgsmål om hvorvidt du kan kalde noget onload-kode i en funktion), kan lade sig gøre :-)
Det kan sagtens lade sig gøre, men din struktur er ikke korrekt (som også nævnes af andre).
Dit 'slider' funktionskald kan du sagtens lægge ind i et alm. funktion. Men din window.onload funktion kan/bør du ikke. Den skal _kun_ bruges til at sætte de kald op som skal køres umiddelbart når siden hentes.
Din window.onload funktion er i jquery den samme som $(function(){});
Rettelse til mit indlæg (#6). Jeg havde ikke registreret at det ikke var den oprindelige spørger der skrev, så svaret er formuleret lidt hen over heinzdmx's hoved - beklager! :-)
@intenz: Det er ikke umiddelbart det jeg siger. Strukturen som som sådan gyldig nok, men den er måske lidt mindre indlysende end den du foreslår. Forskellen på den du skitserer og så den hypofysen selv lægger op til er, at hypofysens erklærer et antal eventhandlers som, antageligt, udføres i vilkårlig rækkefølge på load-tidspunktet, hvor den du skitserer, erklærer én eventhandler som udføres på load-tidspunktet. Din giver en sikkerhed for at tingene udføres i en bestemt sekvens, mens sekvensen i hypofysens egen metode er lidt mere usikker... men ellers burde de begge fungere.
Med hypofysens eget foreslag vil man "nemt" kunne fristes til at kalde test-funktionen på et vilkårligt tidspunkt EFTER load-eventet, hvilket ikke ville bringe meget lykke, mens din implementering givetvis også ville fungere i denne situation.
Derfor må jeg erklære mig enig i, at din version, intenz, er mindre risikabel og fremtidssikker end hypofysens egen. Men hvis det med garanti kan siges, at koden blot skal ske ved load-hændelsen, så er hypofysens lige så korrekt som din (iflg. min opfattelse af hvordan disse handler-bindinger fungerer).
#8. Mit svar var mere rettet mod spørger :) Men jeg er ikke helt enig i det du skriver.
Strukturen er muligvis gyldig nok, og vil formegentlig også virke (hvis den benyttes korrekt, som du også nævner).
"Men hvis det med garanti kan siges, at koden blot skal ske ved load-hændelsen, så er hypofysens lige så korrekt som din"
Mjaa, men kun fordi den også vil virke.
At lægge window.onload eventen inde i en funktion er ekstremt dårlig praksis og kan kun lede til problemer. Det øger kompleksiteten, besværliggør vedligeholde af koden og mindsker 'code reusability', da den uss case man kan bruge funktionen på er meget begrænset.
Generelt vil jeg sige, at onload eventen bør ligge i det globale scope (som i min kode), med mindre man er bevidst omkring hvorfor man har fravalgt det. Hvis man vil lave den slags 'dynamiske' bindinger til eventen, bør det ikke foregå ved at flytte selve eventen ind i funktionerne, men ved brug af f.eks. et observer pattern.
intenz du må skrive hvis jeg skal oprette et spørgsmål med point til dig
Synes godt om
Ny brugerNybegynder
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.