• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Hilfe, es geht nicht

kakalake

New member
Hallo!
Ich habe folgenden Code, der bei der Zeile mit SetTimeout aussetzt.

Code:
<html>
<HEAD>

<SCRIPT LANGUAGE="JavaScript">
<!--

function setbgColor(r, g, b, element)
{
	alert("bin drin");;
}

function fade(sr, sg, sb, er, eg, eb, step, direction,element)
{
    for(var i = 0; i <= step; i++)
    {
    	var r = Math.floor(sr * ((step - i)/ step) + er * (i / step));
    	var g = Math.floor(sg * ((step - i)/ step) + eg * (i / step));
    	var b = Math.floor(sb * ((step - i)/ step) + eb * (i / step));
setTimeout("setbgColor("+r+","+g+","+b+","+element+");",i*step);
	}
}

function fadein(element)
{
    fade(0,0,0, 255,255,255, 12, 1, element);
}


-->
</script>

</head>

<BODY bgcolor="#FFFFFF">
<table border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td bgcolor="#FF0000" onMouseover="fadein(this)" onMouseout="this.style.background='#FF0000'"><img src="damen0.gif" width="153" height="25"></td>
  </tr>
</table>
</body>
</html>

Wieso geht das nicht????

Danke
 
Hallo!

Schon probiert:

setTimeout("setbgColor("+r+","+g+","+b+",'"+element+"');",i*step);

Keine AHnung obs geht aber nen Versuch isses wert.
 
Ok, ok, du bist jetzt mein Held. Es geht. Wieso muss man aber die Hochkommas nehmen. Stringverknüpfung geht doch auch vorher mit dem r g und b. Wieso nicht hier???
 
Hallo!

r,g und b sind numerisch und werden auch richtig übergeben.

Mach doch einfach mal ein
alert(element);
vor der while-Schleife,
dann weißt was ich meine, hoff ich halt :)
 
jetzt habe ich ein neues Problem

Hallo Comet!
So jetzt habe ich mit dem Parameter element ein Problem. Hier ist erst einmal der Code:
Code:
<html>
<HEAD>

<SCRIPT LANGUAGE="JavaScript">
<!--

function makearray(n)
{
    this.length = n;
    for(var i = 1; i <= n; i++)
        this[i] = 0;
    return this;
}

hexa = new makearray(16);
for(var i = 0; i < 10; i++)
    hexa[i] = i;

hexa[10]="a";
hexa[11]="b";
hexa[12]="c";
hexa[13]="d";
hexa[14]="e";
hexa[15]="f";

function hex(i)
{
    if (i < 0)
        return "00";
    else if (i > 255)
        return "ff";
    else
       return "" + hexa[Math.floor(i/16)] + hexa[i%16];
}

function setbgColor(r, g, b, element)
{
	
    var hr = hex(r); var hg = hex(g); var hb = hex(b);
    element.style.background = "#"+hr+hg+hb;
}

function fade(sr, sg, sb, er, eg, eb, step, direction, element)
{
	//setbgColor(0, 0, 0, element)
	//return;
	
    for(var i = 0; i <= step; i++)
    {    
    	var r = Math.floor(sr * ((step - i)/ step) + er * (i / step));
    	var g = Math.floor(sg * ((step - i)/ step) + eg * (i / step));
    	var b = Math.floor(sb * ((step - i)/ step) + eb * (i / step));
    	//alert( i + "\n" + r + " " + g + " " + b );
		setTimeout("setbgColor("+r+","+g+","+b+",'"+element+"');",i*step);
	}
	
}

function fadein(element)
{
    fade(0,0,0, 255,255,255, 12, 1, element);
}


-->
</script>

</head>

<BODY bgcolor="#FFFFFF">
<table border="1" cellspacing="0" cellpadding="0">
  <tr>
    <td bgcolor="#FF0000" onMouseover="fadein(this)" onMouseout="this.style.background='#FF0000'">Ich bin nur eine blöde Zelle, die ihr Farbe ändern soll</td>
  </tr>
</table>
</body>
</html>

So, du hast mir vorgeschlagen, die ' zu benutzen, um die Parameter einwandfrei übergeben zu können. Jetzt kann ich bloss nicht mehr in der Funktion, der ich diesen Parameter übergebe, das Objekt richtig ansprechen. Ich habe in der Funktion fade am Anfang 2 Sachen auskommentiwert, wenn man diese einkommentiert, dann funktioniert alles richtig. Es muss somit an dem von mir mit den ' übergeben Parameter liegen. Weisst du zufällig Rat????

Danke!!!
 
Hallo!

Vielleicht ein Griff ins Klo, aber versuch mal so:

setTimeout("setbgColor("+r+","+g+","+b+",element);",i*step);
 
Ja, war leider ein Griff ins Klo....Aber trotzdem Danke!
Ich versteh aber folgendes nicht. Wenn ich in der Funktion setbgColor mit alert das Object element ausgebe (ich habe wieder mit dem ' geabeitet ), dann sag er mir etwas von wegen [Object] so wie es sein sollte. Es lässt sich bloss nicht auf dieses element dann style anwenden, da er sagt, style ist Null....
Ist das nicht komisch, dass ich scheinbar das element richtig übergebe, aber kein Style darauf anwenden kann...
 
Hallo!

Wa sich hier nicht verstehe ist die Tatsache, daß dein erster Versuch schon hätte funktionieren sollen(meines Wissens).
Aber da element ein Objekt ist kann mans auch nicht ohne ' machen weil er da den String [Object] übergibt, und damit meine ich daß hier nur ein String "[Object]" übergeben wurde, nicht das eigentliche Objekt.

Da weiß ich jetz auch keinen Rat, ausser du gibst den einzelnen Zellen einen Namen und rufst die fade Funktion dann mit fadein(this.name) auf, oder so ähnlich halt, auf jeden Fall wär gut wenn man hier einen richtigen String bekommt, dann wärs leichter.
Mußt dann aber deine Funktionen anpassen.
 
Zurück
Oben