colioneMedlem sedan juni 20014 421 inlägg 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.
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 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 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 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;*