webForumDet fria alternativet

document.links[i].onmouseover=new Function("high(this);"); fungerar ej

4 svar · 271 visningar · startad av colione

colioneMedlem sedan juni 20014 421 inlägg
#1

Hejsan, jag sitter och fipplar lite med en sida och det var ett ganska bra tag sen jag satt och kodade i JavaScript så jag är lite ringrostig tyvärr. Funktionerna high, low highlightit är det någon som har plockat från en annan sida (de var skrivna innan jag var involverad i projektet).

Jag tog på mig JavaScript-delen för att träna upp mina kunskaper litegran igen. Funktionen picopen är skriven av mig och onclick-eventet fungerar klanderfritt, även onmouseover om man lägger till samma kod som i onclick, men det fungerar inte att anropa funktionen high via denna koden som det ser ut nu, jag har stirrat mig blind på det och kan inte se vad jag gör för fel.

<script language="JavaScript">

function high(which2){
theobject=which2
highlighting=setInterval("highlightit(theobject)",60)
}
function low(which2){
clearInterval(highlighting)
if (which2.style.MozOpacity)
which2.style.MozOpacity=0.3
else if (which2.filters)
which2.filters.alpha.opacity=60
}

function highlightit(cur2){
if (cur2.style.MozOpacity<1)
cur2.style.MozOpacity=parseFloat(cur2.style.MozOpacity)+0.1
else if (cur2.filters&&cur2.filters.alpha.opacity<100)
cur2.filters.alpha.opacity+=30
else if (window.highlighting)
clearInterval(highlighting)
}

function picOpen()
{
var pics=document.links.length

for (i=0;i<pics;i++)
{
document.links[i].onclick=new Function("alert('korv');return false;");
[b]document.links[i].onmouseover=new Function("high(this);");
document.links[i].onmouseout=new Function("low(this);");[/b]
}
}

window.onload=picOpen
</script>

En länk ser ut som följer:

<P><A HREF="bilder/b/IMG_0325.JPG" target="cp"><IMG 

SRC="bilder/b/IMG_0325.JPG" WIDTH=200 HEIGHT=150 BORDER=0 ALIGN=bottom 

bordercolor=black style="filter:alpha(opacity=30);-moz-opacity:0.3" ></A></P>

Så, vad gör jag för fel? Tacksam för svar.

jawbreakerMedlem sedan jan. 2003296 inlägg
#2

Jag borde läsa _hela_ din kod innan jag postar kvar. Får återkomma imorgon, om ingen hinner svara ikväll... :)

GuffaMedlem sedan juni 2004533 inlägg
#3

Nu har jag städat rejält i koden. Semikolon mellan alla programsatser. Fler parseFloat. Deklarerat den globala variabeln.

<script type="test/javascript">

var highlighting;

function high(which2) {
	theobject = which2;
	highlighting = window.setInterval("highlightit(theobject)", 60);
}

function low(which2) {
	window.clearInterval(highlighting);
	if (which2.style.MozOpacity) {
		which2.style.MozOpacity = 0.3;
	} else if (which2.filters) {
		which2.filters.alpha.opacity = 60;
	}
}

function highlightit(cur2) {
	if (parseFloat(cur2.style.MozOpacity) < 1) {
		cur2.style.MozOpacity = parseFloat(cur2.style.MozOpacity) + 0.1;
	} else if (cur2.filters && parseFloat(cur2.filters.alpha.opacity) < 100) {
		cur2.filters.alpha.opacity = parseFloat(cur2.filters.alpha.opacity) + 30;
	} else if (window.highlighting) {
		window.clearInterval(highlighting);
	}
}

function picOpen()
{
	var pics=document.links.length;

	for (i=0;i<pics;i++) {
		document.links[i].onclick = new Function("alert('korv');return false;");
		document.links[i].onmouseover = new Function("high(this);");
		document.links[i].onmouseout = new Function("low(this);");
	}
}

window.onload=picOpen;

</script>
colioneMedlem sedan juni 20014 421 inlägg
#4

Det fungerar fortfarande inte med

document.links[i].onmouseover = new Function("high(this);");

Jag kanske glömde nämna att koden för high, low och highlightit fungerade innan jag bestämde mig för att lägga in dem via javascript, då länkarna såg ut såhär:

<P><A HREF="bilder/b/IMG_0379.JPG" target="cp"><IMG SRC="bilder/b/IMG_0379.JPG" WIDTH=200 HEIGHT=150 BORDER=0 ALIGN=bottom bordercolor=black style="filter:alpha(opacity=30);-moz-opacity:0.3" onMouseover="high(this)" onMouseout="low(this)"></A></P>
GuffaMedlem sedan juni 2004533 inlägg
#5

Ifall du skriver om dem så här:

function high() {
	theobject = this;
	highlighting = window.setInterval("highlightit(theobject)", 60);
}

så kan du lägga in referensen till funktionen i eventet:

document.links*.onmouseover = high;*

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