webForumDet fria alternativet

Två, små? problem

2 svar · 784 visningar · startad av Thomasa

ThomasaMedlem sedan aug. 2002365 inlägg
#1

hello!

Har en sak som jag inte får till, men det borde inte vara så svårt?

När man klickar på lift motors så ska plusset bli ett minus och när man sen klickar så ska den byta tillbaka, någon som kan ge ett tips?

Titta på denna url:
http://liko.cqtest.se/web/frameset.asp?topnumber=2&market=&marketid=135&pageid=4608&menuid=1679

tacksam för hjälp!

TomasJMedlem sedan feb. 200563 inlägg
#2

Re: Två, små? problem

Thomasa skrev:

Fråga 1: När man klickar på lift motors så ska plusset bli ett minus och när man sen klickar så ska den byta tillbaka, någon som kan ge ett tips?

Här är ett kodexempel som illustrerar ett möjligt sätt att byta bilder:

String.prototype.endsWith = function (sSubString) {
	 if (sSubString.length > this.length) {
		 return false;
	 }
	 return this.substring(this.length - sSubString.length) == sSubString;
}

// Nedanstående funktions precondition: Strängen img2Path får inte sluta med strängen img1Path.
// Exempelvis skulle funktionen inte fungera med anropet toggle(this, "a.gif", "aa.gif")
// men däremot skulle den fungera med anropet toggle(this, "aa.gif", "a.gif")
function toggleImages(oImg, img1Path, img2Path)
{
	// Strängen oImg.src nedan blir en fullständig/absolut sökväg
	if(oImg.src.endsWith(img1Path)) {
		// if-satsen ovan kan bytas ut mot 'if(oImg.src == img1Path)'
		// ifall man ändrar funktionens precondition till att img1Path
		// måste vara en absolut sökväg
		// (självklart kan man som ett annat alternativ skriva kod 
		//  som extraherar själva bildnamnet, d.v.s. slutet på URL:en,
		//  ifrån den fullständiga sökvägen oImg.src)
		oImg.src = img2Path;
	}
	else {
		oImg.src = img1Path;
	}
}

<img onclick="toggleImages(this, 'plus.gif', 'minus.gif')" src="plus.gif" />

Om du vill trigga ett bildbyte med ett klick på ett annat objekt än img-objektet självt, t.ex. med ett klick på en knapp eller en a-tagg, så kan du lägga in ett id-attribut i img-elementet och då istället låta första parametern till funktionen vara lika med bildens id för att då i början av funktionen köra:
var oImg = document.getElementById(idImg);

/ Tomas

ThomasaMedlem sedan aug. 2002365 inlägg
#3

funkade finfint, tacktack

Genererad på 371 ms · cache AV · v20260730165559-full.f96bc7eb