Javascript, hur skicka en variabel med ett onclick

Permalänk
Medlem

Javascript, hur skicka en variabel med ett onclick

Koden ser väl ut så här:
cancelButton.onclick = cancelB;

Det är alltså en knapp som heter cancelButton som då den klickas skall aktivera funktionen CancelB. Det skall alltså skickas med en en variabel till cancelB funktionen. Hur gör man det?*S* Det är antagligen såååå enkelt antar jag men jag har riktigt fastnat. Man vill ju att det skall vara cancelButton.onclick = cancelB(text); , men tydligen är det inte så...gah

Permalänk
Medlem

Vad vill du åstadkomma? Vad är det för värde du vill passa in i onclick-eventet?

Permalänk

Varför inte bara:

<a href="#" onclick="cancelB('jaja');return false;">Klicka här </a>

Visa signatur

Asus Striker II Extreme / XFX Geforce GTX 280 / Q9450 @ 3.6GHz/ TRUE Noctua 120/ 4x1GB Corsair TWIN3X2048-1333C9DHX / X25-M G2 80gb Velociraptor / Win 7 Ultimate x64/ Antec P190

MovieDatabase

Permalänk
Medlem

Kanske skulle skrivit att det inte är inne i html utan all javascript är i en separat fil inkl. eventhandlers. Iaf verkar det vara något liknande detta jag borde ha gjort:
cancelButton.onclick = "cancelB(text)";
För att kunna skicka med variabeln med min onclick eventhandler. Ska testa då jag kommer hem från jobbet. Det som skall göras är alltså att jag bundit en onclick eventhandler till en knapp (cancelButton), som då knappen klickas skall skicka med en variabel till en funktion som heter cancelB där diverse grejor skall utföras. Får allt att fungera utom att skicka med variabeln, variabeln heter alltså test.

Permalänk
Medlem

Har haft samma problem, skall se om jag lyckas leta reda på den korrekta lösningen... (vet ej varför jag skriver inlägg och letar samtidigt)

Hittade! Här lägger jag till en onclick-funktion med variabel via javascript:
mySelect.onchange = Function("doGray('" + "row_" + counter + "_" + n + "')");

I det här fallet skall den skicka med texten "row_x_y" där x och y är variabler, därför ser det så invecklat ut. För bara en variable bör det väl se ut shåär:

cancelButton.onclick = Function("cancelB('" + test + "')");
Jag är inte säker på att alla citattecken behövs här, kan hända att ("cancelB(test)") fungerar, men i alla fall fungerar inte mitt andra exempel utan dem.

Permalänk
Medlem

Varför måste ni skicka med era värden som parametrar till eventet? Jag har aldrig det problemet.

Permalänk
Medlem

Ska se om jag får det att fungera inatt då jag kommer hem från ett av mina jobb, tack för hjälpen och ska posta hur det löste sig då jag fått det att fungera.

Permalänk
Medlem

Låter som att ni söker:

var myButton = document.getElementById('myBtn'); myButton.onclick = function(){ myFunction(parameter1, parameter2); };

Permalänk
Medlem
Skrivet av Wishie:

Varför måste ni skicka med era värden som parametrar till eventet? Jag har aldrig det problemet.

Kan inte köra med globals, har föresten inte löst det än, så fort jag fattar vad som är fel hör jag av mig.

Edit: Iaf, jag sket i att skicka vidare till en funktion utanför funktionen som jag arbetade i och gjorde bara en odefinierad funktion eller vad det nu kallas som en av er föreslog som låg i huvudfunktionen som det mesta sker i, ex:
function ai(modifiable)
massor med kod
confirmButton.onclick = function()
{
massor med kod som gör grejor
ai(newModifiable);
//wtf, den fungerar, men inte då jag försöker skicka till en annan funktion!!
}

Det skumma är dock att inifrån denna odefinierade kunde jag skicka en variabel med till funktionen som det ovanstående ligger i. Jag officiellt hatar javascript. Klockan är nu 04:28, och ska kika på det här tvärt igen då jag stiger upp, och kanske är mindre trött.

Permalänk
Medlem
Skrivet av Semjonov:

Det skumma är dock att inifrån denna odefinierade kunde jag skicka en variabel med till funktionen som det ovanstående ligger i. Jag officiellt hatar javascript. Klockan är nu 04:28, och ska kika på det här tvärt igen då jag stiger upp, och kanske är mindre trött.

Har du läst/sett något med Douglas Crockford om JavaScript? Jag var precis likadan som du tills jag hittade de här webcastsen med honom: Douglas Crockford: "The JavaScript Programming Language"/1 of 4 on Yahoo! Video (länkar bara till första delen, du kan klicka dig framåt till resten). Oerhört bra förklarande, och förklarar alla av de "konstiga" beteenden man hittar hos JavaScript. Kan verkligen rekommenderas.

Permalänk
Medlem

Ska kika på den ikväll på ett av mina jobb, jag tror jag får massor med tid över på grund av förseningar med leveranser pga snön. Tack!

Permalänk
Medlem

Jag älskar JavaScript och skriver till och med back-end i det ibland. Jag kan säkerligen hjälpa dig, men inte utan att se någon kod. Kopiera det relevanta och visa oss här (via Pastebin eller liknande tjänst om det är mycket kod).

Förklara gärna vad du menar med kommentaren:

Citat:

//wtf, den fungerar, men inte då jag försöker skicka till en annan funktion!!

Permalänk
Medlem
Skrivet av azoapes:

Jag älskar JavaScript och skriver till och med back-end i det ibland.

Samma här. Kikat något på Rhino? Har börjat med en enkel ircbot skriven i JavaScript med hjälp av det, hur kul som helst! Och koden blir grymt kompakt och smart jämfört med samma kod skriven i Java.

Permalänk
Medlem
Skrivet av Wishie:

Samma här. Kikat något på Rhino? Har börjat med en enkel ircbot skriven i JavaScript med hjälp av det, hur kul som helst! Och koden blir grymt kompakt och smart jämfört med samma kod skriven i Java.

Japp, har testat Rhino lite men främst kört via ramverk (Google AppEngine och Node.js)

Älskar det rena objektorienterade tänket och hur effektivt det är att utveckla i. Till skillnad från t.ex. C++ finns det ganska få olika sätt att skriva samma sak på, det gör att man i utvecklarteam snabbt kan läsa, förstå och jobba vidare på någon annans kod. Och till skillnad från t.ex. C# är man inte låst till att hålla koll på alla starka typer, vilket tvingar fram goda variabelnamn (som är en viktigare nyckel än variabeltypen för att förstå hur utvecklaren tänkte). Det gör också att man försöker hålla nere storleken på sina scopes, vilket bidrar till en mer modulär och återanvändbar kod.

Något jag också gillar med JS är att många ogillar det