Gå til innhold

Forandre en variabel med onclick (JS)


Anbefalte innlegg

Skrevet

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(?).

Videoannonse
Annonse
Skrevet (endret)

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ø
Skrevet (endret)

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
Skrevet

Takk skal du ha torbjørn marø. Men jeg fikk ikke det til å fungere, men jeg kan desverre gå lengre inn på hvorfor. Får ikke lov til å diskutere dette egentlig. Er under NDA. Men får ikke svar i offisielt forum.

Skrevet (endret)

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

 

var someVar = 'foo',

skal være

 

var someVar = 'foo';

:)

Endret av l3dx
Skrevet

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;

Skrevet

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:

Skrevet (endret)

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
Skrevet (endret)

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ø

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...