Just nu i M3-nätverket
Gå till innehåll

Kört fast igen


Henrik Wikström

Rekommendera Poster

Henrik Wikström

Hur kommer jag åt att ändra onClick? Är det inte bara att skriva Objektet.onClick = VärdeSomSkaVara?

 

Länk till kommentar
Dela på andra webbplatser

DanielForPresident

Vad är det du vill göra? Vad vill du ändra värde på, objektet du klickar på, eller vill du att "VärdeSomSkaVara" är en funktion som ska köras när man klickar på objektet?

 

onClick är ju ett event som körs. En vanlig knapp kan ju se ut så här:

 

<input type="button" onClick="alert('hello world');" />

 

När du klickar på knappen dyker det upp en alert ruta med texten 'hello world'.

 

Länk till kommentar
Dela på andra webbplatser

Hej!

 

Om du tex har

 

<div id="test" onclick="alert('Nu klickade du')">Klicka här</div>

 

kan du väl ändra på den genom

document.getElementById("test").onclick = function() {alert("Ändrad alert");};

 

Om du däremot skapar noden från scratch (med document.createElement) får du nog ge dig in i addEventListener (DOM) och attachEvent (IE) och då ska du nog googla lite på DOM Events tex.

/H

 

Länk till kommentar
Dela på andra webbplatser

Henrik Wikström

Njaa, inte riktigt som jag har tänkt mig.

 

Från början har noden inget värde på onClick, men sen vill jag sätta ett värde på eventet onClick, i en funktion, som körs när man klickar på knappen.

 

[inlägget ändrat 2006-03-09 23:40:17 av Henrik Wikström]

Länk till kommentar
Dela på andra webbplatser

Okej...

Förstår jag dig rätt. Du har en knapp du klickar på som i sin onclickmetod ska sätta ett onclickevent på en annan nod. Eller är det så at du också vill dispatcha ett onclick på en annan nod?

Och du var alltså inte hjälpt av det jag skrev innan...

Ähh jag gissar ju bara!

 

Om du visar lite kod kanske det blir lättare...

/H

 

 

 

 

Länk till kommentar
Dela på andra webbplatser

Henrik Wikström

Jag provade så här men det gick inte:

o.onClick = 'showField(\'form_steg1\'\,\'form_steg2\');';

 

Länk till kommentar
Dela på andra webbplatser

o.onClick = 'showField(\'form_steg1\'\,\'form_steg2\');';

 

Okej, jag gissar att showField är en metod... Skippa första och sista fnuttarna så kommer den också behandlas som en metod annars blir den en sträng... Sedan förstår jag inte \'form_steg1\'\-delen men det är väl kristallklart för dig!

Påren igen

/H

 

Länk till kommentar
Dela på andra webbplatser

Henrik Wikström

\ skriver man ju för att enkelfnuttarna ska tolkas rätt i en sträng.

 

Men som det är nu så körs funktionen direkt när onClick får värdet, men jag vill inte att det händer något förrens jag klickar på knappen.

 

Länk till kommentar
Dela på andra webbplatser

Om du då provar som jag skrev först.

Dvs

...onclick = function() {showField("form_steg1", "form_steg2")};

Går det bättre då?

/H

[EDIT] Missade en fnutt

[inlägget ändrat 2006-03-10 00:26:46 av HeT]

Länk till kommentar
Dela på andra webbplatser

Henrik Wikström

Strålande...

 

Så enkelt det är när man förstår. Tack tack, poäng till dig.

 

Länk till kommentar
Dela på andra webbplatser

Äntligen...

Det skulle funka att skriva onclick = showField; också men du vill ju skicka in värden till metoden och så fort du skriver metod() så körs den...

 

Tack för poäng :thumbsup:

/H

 

Länk till kommentar
Dela på andra webbplatser

Henrik Wikström

Jag vart visst lite ivrig, det fungerade tack vare att jag inte hade tagit bort onClick i buttontaggen, så vi är tillbaks på ruta ett...:(

 

Länk till kommentar
Dela på andra webbplatser

Henrik Wikström

o.onClick = function() {showField('form_steg2', 'form_steg3')};

 

Länk till kommentar
Dela på andra webbplatser

Henrik Wikström

function changeStatus(id,value,title){

var o=document.getElementById('step'+id+'')

f(value){
o.src= 'img/knapp_steg'+(id++)+'.gif';
if(title != null){o.title=''+title+'';}
o.onClick = function() {showField('form_steg'+(id-1)+'', 'form_steg'+id+'');};
}
else{
o.src= 'img/knapp_steg'+(id++)+'BW.gif';
if(title != null){o.title=''+title+'';}
o.onClick = '';
}

}

 

[inlägget ändrat 2006-03-10 01:05:44 av Henrik Wikström]

Länk till kommentar
Dela på andra webbplatser

Prova med att skriva onclick istf onClick.

Det är skillnad i betydelse mellan gemener och versaler...

Sedan hoppas jag verkligen...

/H

 

Länk till kommentar
Dela på andra webbplatser

Henrik Wikström

Goder morgon

 

Jag försökte göra så här, men det gick inte bra...

 

btn.onclick = function() {this.submit();};

 

Länk till kommentar
Dela på andra webbplatser

Ånej... ;)

Frågan är nog vad du tror att this är? Som det är skrivet nu refererar this till btn...

 

/H

 

Länk till kommentar
Dela på andra webbplatser

Henrik Wikström

this tänkte jag att det skulle bara btn och btn är objektet som jag vill "fästa" eventet på. Dvs att på onclick ska formuläret skickas iväg.

 

Länk till kommentar
Dela på andra webbplatser

Jo men om du skriver this.submit() så är ju det samma som btn.submit() och det är väl form.submit() du vill göra? I varje fall skulle jag tro det.

/H

 

Länk till kommentar
Dela på andra webbplatser

Henrik Wikström

Just, ibland står det still när man inte har hundra koll, men det du sa stämmer ju bra så nu fungerar det. Tack tack.

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...