webForumDet fria alternativet
Logga in / Bli medlem

Hjälp med ett script ??

JavaScript

2 svar · 146 visningar · startad av AndreasC

Medlem sedan mars 20011 964 inlägg
Frågan#1

Har ett script som ändrar till en text när man klickar på en länk. Texten ligger i ett fixerat lager och den byts ut när man klickar på en länk. Själva texten som ska visas anger man således i länken mha onclick=""

Scriptet för detta och som jag behöver hjälp med ser ut så här:

<script type="text/javascript" language="JavaScript">
var Id = "desctunics";
function describetunics(string){
if(document.layers){
with (document[Id].document){
open();
write(string);
close();
}
} else if (document.all){
document.all[Id].innerHTML = string;
} else if (document.getElementById){
jxdocrange = document.createRange();
jxdocrange.setStartBefore(document.getElementById(Id));
while (document.getElementById(Id).hasChildNodes()){
document.getElementById(Id).removeChild(document.getElementById(Id).lastChild);
document.getElementById(Id).appendChild(jxdocrange.createContextualFragment(string));
}
}
}
</script>

Jag vill gärna ange flera id för scriptet. Förutom Id = "desctunics" så vill jag ha ytterligare id'n. Jag har testat att lägga till ytterligare en funktion i scriptet som ser lika dan ut som den första fast jag har då naturligtvis modifierat den lite. Jag har också ändrat id till class. Eftersom jag inte är så haj på javascript så har jag naturligtvis gjort något fel. Hur gör jag?

Medlem sedan juni 20004 308 inlägg
#2

Tycker jag känner igen det där scriptet ;). En rad har dock smugits sig upp på fel ställe. Så gär kan det se ut;

<script language="JavaScript">
function describe(Id,string){
	if(document.layers){
		with (document[Id].document){
			open();
			write(string);
			close();
		}
	} else if (document.all){
		document.all[Id].innerHTML = string;
	} else if (document.getElementById){
		jxdocrange = document.createRange();
		jxdocrange.setStartBefore(document.getElementById(Id));
		while (document.getElementById(Id).hasChildNodes()){
			document.getElementById(Id).removeChild(document.getElementById(Id).lastChild);
		}
		document.getElementById(Id).appendChild(jxdocrange.createContextualFragment(string));
	}
}
</script>

Så kan du skapa ett par lager med;
<div id="foo" style="position:absolute;top:50px;left:50px;"></div>
<div id="bar" style="position:absolute;top:150px;left:50px;"></div>

som du sedan kan ändra med;

onClick="describe('foo','Detta står i foo'); describe('bar','Detta står i bar');"

Medlem sedan mars 20011 964 inlägg
#3

Jo, det är ditt script :) Men då förstår jag bättre hur det ska va. Tackar för det.

248 ms totalt · 4 externa anrop · v20260731065814-full.14655e19
117 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
118 ms — ändringar (db)