webForumDet fria alternativet

Ändra en bild på ID

12 svar · 369 visningar · startad av voigtann1

voigtann1Medlem sedan juni 20018 810 inlägg
#1

om vi gör ett exempel:

<table>
<tr>
<td><img src='bild_vanlig.gif' id='1'></td>
<td><a href='javascript:knapp(1)'>Ändra ID1's SRC!</a></td>
</tr>
</table>

Detta är ju inte svårt att fixa så att ID=1's bild kanske ändras till en annan bild när man kör över "Ändra ID1's SRC!" eftersom knapp(1) är samma som ID=1... eller?

dectgapMedlem sedan sep. 20021 542 inlägg
#2
<table>
<tr>
<td><img src='bild_vanlig.gif' id='a'></td>
<td><a href="javascript:document.getElementById('a').src='ny_bild.gif'">Ändra ID1's SRC!</a></td>
</tr>
</table>

Ett id får inte börja på en siffra.

voigtann1Medlem sedan juni 20018 810 inlägg
#3

dectgap... varför inte :e får försöka lära mig javascript någon gång.. känns dumt att man inte kan det ännu :e

dectgapMedlem sedan sep. 20021 542 inlägg
#4

Fråga mig inte varför - det bara är så :)
http://www.w3.org/TR/html4/types.html#type-name

voigtann1Medlem sedan juni 20018 810 inlägg
#5

fungera det på alla webbläsare?

Jesper TMedlem sedan nov. 20017 058 inlägg
#6

Så länge du kör med getElementbyid så borde det väl funka med de flesta läsare.

voigtann1Medlem sedan juni 20018 810 inlägg
#7
function bulletOff(id)
{
	document.getElementById('+id+').src='ny_bild.gif'
}

Ska funktionen se ut så isåfall om man kör en mouseover och sånt?

dectgapMedlem sedan sep. 20021 542 inlägg
#8

Nästan:

function bulletOff(id)
{
	document.getElementById(id).src='ny_bild.gif';
}
voigtann1Medlem sedan juni 20018 810 inlägg
#9

om vi säger att jag kör:
javascript:bulletoff(1)

då får jag ändra funtionen lite(måste ju ha en bokstav.. exempel a:

function bulletOff(id)
{
	document.getElementById([b]'a'+id[/b]).src='ny_bild.gif';
}

då eller?

voigtann1Medlem sedan juni 20018 810 inlägg
#10

Om jag ska köra samma onMouseout och mouseover men vill ha två olika bilder... kan man göra någon IF sats då eller ska man köra variabler för bild bytet?:

function bulletOff(id,bild)
{
	document.getElementById('a'+id).src='+bild+';
}

???

JojoxxMedlem sedan juni 20004 306 inlägg
#11

Nästan igen :)

function bulletOff(id,bild)
{
	document.getElementById('a'+id).src=bild;
}

(anropas då med bulletOff('ett_id','bilden.png') )

voigtann1Medlem sedan juni 20018 810 inlägg
#12

kan man göra så att funktionen säger.. om bilden är bild1.gif då ska den vara bild2.gif/blåbär.gif när man får mouseout med samma anrop?

JojoxxMedlem sedan juni 20004 306 inlägg
#13

Osäker på hur du menar, men du kan ju ex. använda alt-attributet (även om detta inte är vad det är tänkt till) för att spara orginalfilnamnet och ifall du anropar bulletOff utan bild så används det (alt-attributet) och bilden återställs.

<img src="bild.gif" alt="bild.gif" onmouseover="bulletOff(1,'blabar.gif');" onmouseout="bulletOff(1);" id="a1">
...
<script type="text/javascript">
function bulletOff(id,bild)
{
	document.getElementById('a'+id).src=(bild)?bild:document.getElementById('a'+id).alt;
}
</script>

Ett alternativ just i detta fall om bulletOff anropas direkt från <img>-taggen är att använda nyckelordet this som då syftar på det aktuella objektet (bilden) så slipper du hålla reda på id.

<img src="bild.gif" alt="bild.gif" onmouseover="bulletOff(this,'blabar.gif');" onmouseout="bulletOff(this);">
...
<script type="text/javascript">
function bulletOff(obj,bild)
{
	obj.src=(bild)?bild:obj.alt;
}
</script>
Genererad på 402 ms · cache AV · v20260730165559-full.f96bc7eb