Timo "God's Boss" Reitz: doOver(); doOut(); doClick()

Beitrag lesen

var ie5 = document.getElementById != null;

Wird nicht benutzt, wo ist der Sinn?

function doOver() {
var el = window.event.srcElement;

Wieso überprüfst du weiter oben die Existenz von document.getElementById, aber hier nicht die Existenz von window.event und window.event.srcElement? Dann wäre dir nämlich aufgefallen, dass im Firefox window.event gar nicht existiert.

bgc = el.style.backgroundColor;

Hier wird dem globalen Objekt eine Eigenschaft zugewiesen, ganz schlechter Stil.

if (bgc != "") {

if (bgc) reicht aus, "" ist ein falsy value.

el.style.borderTopColor = "white";
  el.style.borderLeftColor = "white";
  el.style.borderRightColor = "black";
  el.style.borderBottomColor = "black";

Solche Angaben in den JavaScript-Code zu schreiben ist schlechter Stil. Besser ist es, sie in den CSS-Code zu stecken und per JavaScript lediglich die HTML-Struktur so abzuändern, dass unterschiedliche CSS-Selektoren greifen.

colorBox.style.backgroundColor = bgc;
  colorName.innerHTML = bgc;

Woher kommen colorBox und colorName? Du hast sie vorher nicht benutzt.

Ich weiß gar nicht, wo ich anfangen soll. Schau bei http://de.selfhtml.org//javascript/objekte/event.htm nach, wie das mit den Events, vor allem mit der Übergabe des Event-Objekts funktioniert. Lies dir die Artikel zu Objektabfragen und zur Organisation von Scripts durch. Vermeide unbedingt globale Variablen!

Diese Methoden brauche ich für einen Farbwähler, der diese so aufruft:
echo "<table cellspacing="0" cellpadding="0" onmouseover="doOver()" onmouseout="doOut()" onclick="doClick()" style="width: 260;">";

Das ist serverseitiger Code und daher irrelevant (oder es ist tatsächlich dein HTML-Code und somit zutiefst kaputt). Du hast nicht einmal angegeben, welche Sprache verwendet wird!
Sollte der resultierende HTML-Code <table cellspacing="0" cellpadding="0" onmouseover="doOver()" onmouseout="doOut()" onclick="doClick()" style="width: 260;"> sein, so beachte, dass es besser ist, cellspacing und cellpadding in ein <http://de.selfhtml.org//css/formate/einbinden.htm#separat@title=externes Stylesheet> zu verlagern sowie Inline-http://de.selfhtml.org//css/formate/direkt.htm@title=Styles und -http://de.selfhtml.org//javascript/sprache/eventhandler.htm@title=Eventhandler zu vermeiden. Bei dem Wert zu width fehlt außerdem die http://de.selfhtml.org//css/formate/wertzuweisung.htm#numerische@title=Einheit.

Das Problem ist, wenn ich im Farbwähler im ff auf die einzelnen Farben gehe passiert nichts. Im IE allerdings funktioniert alles, das heißt ich kann die farben auswählen und anklicken usw..

Kann mir einer sagen warum es im ff nicht geht? Ich brauch unbedingt eine Lösung, dass es in beiden Explorer geht.

Ja, du hast eine IE-only-Lösung produziert. Es geht also nicht bloß im Firefox nicht, sondern in diversen anderen Browsern ebenfalls nicht.

--
Reden ist Silber, Schweigen ist Gold, meine Ausführungen sind Platin.
Self-Code: sh:( ch:? rl:( br:> n4:( ie:{ mo:) va:) de:> zu:} fl:| ss:| ls:~ js:|