22. september 2003 - 21:28Der er
29 kommentarer og 1 løsning
Sæt variabel alt efter hvor på siden funktionen kaldes
Hej, jeg har et spørgsmål om til deklaration af variable i javascript. Hvordan kan jeg tildele variable forskellige værdier alt efter hvor på siden(hvilket TD-felt) funktionen(som skal bruge variablerne) kaldes? Værdierne i mine variable ændres også i funktionen. Kan dette gøres med "onMouseOver" i TD-felterne eller vil variablen så have samme værdi så længe musen er over TD-feltet? På forhånd tak for hjælpen
Når du bruger onMouseOver, kan får aktiveret en funktion. Den kan ændre en eller flere variable. Du kan have forskellige funktioner, der aktiveres rundt omkring på siden, afhængig af hvilken ting du kører musen henover.
Så du kan have en variable, der øverst på siden måske får tildelt værdien 1, når onMouseOver træder i funktion, men et andet sted får tildelt værdien 1. Den enkelte funktion kan håndtere flere variable, hvis du hart brug for det. Du skal altså have forskellige funktioner, som aktiveres af forskellige begivenheder. En begivenhed er her at musen placeres et bestemt sted.
altså hvis du fx har et script der bruger en variabel kaldet "tal" kan du tildele den nye værdier ved en onmouseover: <table> <tr> <td onmouseover="tal = 10;">OVER HERE</td> <td onmouseover="tal = 20;">OVER HERE TOO</td> </tr> </table>
Husk bare at din variabel skal være global, altså specificeret udenfor en funktion, fx lige før funktionen starter.
For at fortsætte skovenborgs indlæg: <td onmouseover="f1();">OVER HERE</td> <td onmouseover="f2();">OVER HERE</td> Nu kan du lave en hel masse i funktioneren f1 og f2.
Problemet er at jeg skal bruge funktionen mens musen er over TD-feltet og variablerne ændres af funktionen. Vil variablen som bestemmes ved onMouseOver så kun være den værdi så længe musen er over?
Nej, hvis du ændrer en global variabel med fx en funktion, så forbliver den som den er til du ændrer den igen (fx flytter musen over et andet felt med samme funktion
Til Casper skovgaard: Det er ikke helt det jeg mener. Til Skovenborg: Vil det sige at min variabel vil have samme værdi, så længe musen er over TD-feltet selvom min funktion egentlig ændrer variablen? Det fremgår måske ikke helt klart.
Jeg sætter værdien i en variabel med OnMouseOver i et TD felt. Mens musen er over TD-feltet er det meningen at min funktion skal ændre variablen hver gang jeg klikker med musen på et billede som er i TD-feltet.
Mit spørgsmål er så: Kan min "klik-funktion" godt ændre værdien i variablen så længe onMouseOver egentlig bestemmer værdien i variablen. Jeg bestemmer jo egentlig værdien af variablen med onMouseOver og funktionen på samme tid!
Min hensigt er at variablen skal sættes med onMouseOver alt efter hvilket TD-felt musen er over. Mens musen er over dette felt skal jeg så bruge min funktion, som skal kunne ændre værdien hver gang der klikkes på et billede. Lad os sige at onMouseOver sætter ImgStart=1. Funktionen ImgShift() kaldes ved at klikke på billedet og hver gang der klikkes lægges der en til ImgStart.
Håber ikke jeg har gjort det mere indviklet med min forklaring.
ja, altså når du først flytter musen over og ændrer variablen og derefter klikker vil variablen stadig ændre sig: <script type="text/javascript"> var imgstart; function shiftImg() { imgstart++; window.status = imgstart; } </script>
Det er simpelthen svaret på mit spg., mit problem må ligge et andet sted så :0) Jeg kan ikke rigtig give dig pointene skovenborg når det er kommentar? Vil du skrive et svar så jeg kan aflevere pointene. Skovgaard du skal naturligvis også have tak for hjælpen.
næh, det ser okay ud. Det er bare en god ide' at erklære den sammen med imgstart helt i starten: var imgStart,imgEnd; så burde der ikke være problemmer.
function ImgShift(){ ImgEnd=ImgStart+4 ImgNum=ImgStart ImgNum=ImgNum+1 if (ImgNum==ImgEnd) {ImgNum=ImgStart} Window.status=ImgNum; Jeg aktiverer funktionen ved at klikke på et billede som sagt, men ImgNum bliver ikke større end 2, hvis ImgStart=1. Er det fordi at ImgNum=ImgStart er inde i funktionen? Sætter jeg den udenfor står "NaN" i statuslinien og det kan jeg ikke lige greje hvor kommer fra.
Jeg går udfra at man giver pointene til personen som er kommet med svaret på ens spørgsmål? Eller kunne jeg have delt dem? Jeg er ny her på experten så oplys endelig hvis der er en anden måde jeg kan dele pointene på til de rare hjælpere :o)
der er en anden måde, hvor du kan trykke på advanceret og derefter dele pointene ud til dem du vil. Det så for sent nu, så med mindre casper_skovgaard protesterer højlydt så må du bare huske det til en anden gang.
og som svar på dit lille sidste spørgsmål så kan du skrive: <script language="javascript">
var ImgStart,ImgEnd; var ImgNum=1; function shiftImg() { ImgEnd=ImgStart+4; ImgNum++; if (ImgNum==ImgEnd) {ImgNum=ImgStart;} window.status=ImgNum; } </script>
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.