Hej Löste det, "i" i flera loopar upskattades tydligen inte. Bytte till olika i varje (j,x,y), då funkade det... Om man inte deklarerar variabler i Java så får de "global scope". <b>Om man inte deklarerar variabler i Java så får de "global scope".</b>For-loop kör ej klart
Jag sitter med ett javascript som ser ut som nedan, problemet är att den första for-loopen i "layout()" bara kör första varvet, vet ej vad det beror på? Hoppas nån kan hjälpa mig!
/Mattias
<body onload="layout()">
<script>
function layout() {
for (i=1; i<3; i++) {
layoutRow(i);
}
}
function layoutRow(rowNr) {
h = maxHeight(rowNr-1);
for (i=0; i<4; i++) {
document.getElementById('div' + i + '.' + rowNr).style.top = h;
}
}
function maxHeight(rowNr) {
maxH = 0;
for (i=0; i<4; i++) {
h = refa('div' + i + '.' + rowNr);
if(h > maxH)
{
maxH = h;
}
}
t=document.getElementById('div0.'+rowNr).offsetTop;
return maxH + t;
}
function refa(odiv){
h=document.getElementById(odiv).offsetHeight;
return h;
}
</script>Sv: For-loop kör ej klart
Sv: For-loop kör ej klart
Det är alltså samma variabel i som används i alla funktionerna.Sv:For-loop kör ej klart
Måste inte alla variabler deklareras i Java?
Vad du skulle kunna göra, Mattias är att deklarera variablerna:
function layout() {
for (var i=1; i<3; i++) {
layoutRow(i);
}
}
function layoutRow(rowNr) {
h = maxHeight(rowNr-1);
for (var i=0; i<4; i++) {
document.getElementById('div' + i + '.' + rowNr).style.top = h;
}
}