webForumDet fria alternativet

Varför Opera, varför? - problem med onClick

4 svar · 283 visningar · startad av learn

learnMedlem sedan jan. 20051 130 inlägg
#1

Jag använder nedanstående skript för att tilldela divar några events.

function menyn() {
	var meny = document.getElementsByTagName('div');
	for (i=0;i<meny.length;i++) {
		meny[i].onclick = function(){ document.location.href="?link=hej";};
		meny[i].onmouseover = function(){this.style.backgroundImage="url('meny_over.gif')";};
		meny[i].onmouseout = function(){this.style.backgroundImage="url('meny_out.gif')";};
	}
}

Allt funkar bra i FF och IE, men i Opera blir det knas och sidan "?link=hej" körs automatiskt om och om igen i all evighet utan att jag ens klickar...!

Varför vill Opera göra så här?

R: Hmm, nu funkar det visst, aja.. :r

learnMedlem sedan jan. 20051 130 inlägg
#2

Däremot så funkar inte om jag lägger href:en i en separat funktion, som följande:

function menyClick() {
	document.location.href="?link=hej";
}

function menyn() {
	var meny = document.getElementsByTagName('div');
	for (i=0;i<meny.length;i++) {
		meny[i].onclick = function(){ menyClick();};
		meny[i].onmouseover = function(){this.style.backgroundImage="url('meny_over.gif')";};
		meny[i].onmouseout = function(){this.style.backgroundImage="url('meny_out.gif')";};
	}
}

Då kör Opera funktionen om och om igen utan att jag klickar!!! Funkar som sagt fint i FF och IE.

learnMedlem sedan jan. 20051 130 inlägg
#3

Aja, jag släpper det där ett tag. Om jag nu kör enligt den första koden och vill ha ut varje objekts id-nummer bifogat i href:en, hur skall jag göra. Detta funkar inte:

function menyn() {
	var meny = document.getElementsByTagName('div');
	for (i=0;i<meny.length;i++) {
var link = "?link="+meny[i].id;
		meny[i].onclick = function(){ document.location.href=link;};
		meny[i].onmouseover = function(){this.style.backgroundImage="url('meny_over.gif')";};
		meny[i].onmouseout = function(){this.style.backgroundImage="url('meny_out.gif')";};
	}
}

Med ovanstående kod blir alla href likadana (det sista elementets id). Hur ska jag göra?

Tack för er hjälp på förhand!

Peter SMedlem sedan dec. 20025 483 inlägg
#4
location.href = "?link=" + this.id
learnMedlem sedan jan. 20051 130 inlägg
#5

Tack Peter, det funkar! Trodde jag hade testat det själv, men men.

Kan passa på att fråga. Kan jag med säkerhet bygga en meny på ovanstående sätt, och strunta i href:en på själva länken? Jag menar, det finns väl dem som har javascript avstängt på sin browser och därmed inte kan använda menyn..??

129 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)