Gå til innhold

Forandre en variabel med onclick (JS)


Anbefalte innlegg

Hei, jeg lager knapper/innhold ved hjelp av en database. Jeg vil at en variabel skal forandres til knappen sin "caption" KUN med kode i onlclick: "". DVS onclick: "someContent = "denne knappen sin caption".

 

Håper jeg har gjort meg noenlunde forstått(?).

Lenke til kommentar
Videoannonse
Annonse

Tror kanskje jeg skjønner hva du mener. Er ingen JS ekspert, og jeg bryter nok mange regler nå, men dette funker:

 

<html>
 <head>
 <script type="text/javascript" 
   src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.0/jquery.min.js"></script>
   <script type="text/javascript">
     var someVar = 'foo',
         f = function(newValue) {
           alert(someVar);
           someVar = newValue;
           alert(someVar);
         };
   </script>
 </head>
 <body>
   <button onClick="f($(this).text());">bar</button>
 </body>
</html>

 

Når du klikker på knappen som har caption "bar" vil det først komme en alert som sier "foo" (som er verdien av someVar før endring. Deretter kommer en alert som sier "bar" - verdien etter endring.

Endret av torbjørn marø
Lenke til kommentar

joda, det går nok. Men jeg vil forandre variabelen til teksten i knappen (caption). Teksten i knappene og antall knapper kommer fra en database.

 

onclick: "someContent: "denne knappen sin caption".

 

EDIT: Har ikke lest posten over enda.

Endret av O:M:A
Lenke til kommentar

Også er det vel en liten leif i definisjonen av someVar (komma, ikke semikolon).

Nei, det er faktisk ikke riktig. Selv om det ikke er feil å gjøre slik:

 

var a = 1;
var b = 2;
var c = 3;

 

Så er det anbefalte måten å gjøre det slik som jeg gjorde:

 

var a = 1,
   b = 2,
   c = 3;

Lenke til kommentar

Også er det vel en liten leif i definisjonen av someVar (komma, ikke semikolon).

Nei, det er faktisk ikke riktig. Selv om det ikke er feil å gjøre slik:

 

var a = 1;
var b = 2;
var c = 3;

 

Så er det anbefalte måten å gjøre det slik som jeg gjorde:

 

var a = 1,
   b = 2,
   c = 3;

 

Det var jeg ikke klar over! Da lærte jeg noe nytt :thumbup:

Lenke til kommentar

OT:

... Selv om det ikke er feil å gjøre slik:

var a = 1;
var b = 2;
var c = 3;

Så er det anbefalte måten å gjøre det slik som jeg gjorde:

var a = 1,
   b = 2,
   c = 3;

Er det virkelig anbefalt å liste opp lokale variabler på den måten i JS?

 

Jeg synes det gir mindre lesbarhet rundt hva som er lokale og hva som er globale variabler, med tanke på at "var" kun eksisterer inni nåværende scope i JS (aka. lokal), og at en variabel deklarert "someVar = foo;" vil leve i window scopet (aka. global). Jobber man med nøstede funksjoner og closure, ser jeg for meg at denne metoden fort kan bli messy.

Endret av cbastus
Lenke til kommentar

Er det virkelig anbefalt å liste opp lokale variabler på den måten i JS?

 

Jeg synes det gir mindre lesbarhet rundt hva som er lokale og hva som er globale variabler, med tanke på at "var" kun eksisterer inni nåværende scope i JS (aka. lokal), og at en variabel deklarert "someVar = foo;" vil leve i window scopet (aka. global). Jobber man med nøstede funksjoner og closure, ser jeg for meg at denne metoden fort kan bli messy.

Jeg tar mine råd fra Douglas Crockford, som er en av de største autoritetene på JavaScript, men jeg er som sagt langt fra noen ekspert, og jobber ikke mye med det.

 

Når det er sagt så er det vel heller ikke anbefalt å bruke globale variabler, så blanding mellom lokale og globale bør derfor ikke være et stort problem.

 

Det finnes mange måter å kode JavaScript på, Crockford's råd er ment å bringe orden inn i det kaoset JavaScript lett kan bli.

 

Update: Ser forøvrig at Crockford selv ikke er konsekvens på bruken av var. Anbefaler folk å gjøre egen research og se hva som passer for dem. Anbefaler boken JavaScript: The Good Parts.

 

Som en referanse, ta en titt på http://javascript.crockford.com/style1.html

Endret av torbjørn marø
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...