Ole: Betriebsblind...Script läuft nur ein mal

Guten morgen,

es mag daran liegen das ich seit 4 Uhr in der früh schon an meinem Rechner sitze und an der Homepage meiner Band bastel....aber ich finde den fehler in meiner Seite nicht und das macht mich wahnsinnig *grrrr*

Ich habe nicht viel auf der Seite...

  1. Eine CSS-Definition:

.power        {height: 40px;
              text-align: center;
              vertical-align: middle;
              width:40px;
              background-color: #444444;
              border-top: 2px solid #000000;
              border-left: 2px solid #000000;
              border-bottom: 2px solid #cccccc;
              border-right: 2px solid #cccccc;
              font-family: Arial,Arial,'Sans-Serif';
              font-size: 10px;
              font-weight: bold;
              color: #FFCC00;}

  1. Ein kleines JavaScript (wirklich winzig):

function lichtaus(NAME1)
{
if (document.getElementById(NAME1).style.color == "#CCCCCC")
    {
     document.getElementById(NAME1).style.color = "#FFCC00";
    }
else
    {
    document.getElementById(NAME1).style.color = "#CCCCCC";
    }
}

  1. Eine winzige Tabelle:

<table border=0 cellpadding=0 cellspacing=0>
 <tr>
  <td class="power" id="display_1" onclick='lichtaus("display_1");'>POWER</td>
  </tr>
</table>

Wie man aus dem (winzigen) JavaScript erkennen kann, soll, wenn die Textfarbe #CCCCCC ist diese auf #FFCC00 gesetzt werden, wenn nicht auf #CCCCCC. eigentlich ganz einfach.

der erste click funktioniert auch (IE + MOZ) nur der zweite click bleibt ohne wirkung (IE + MOZ)...alle folgenden clicks bleiben auch ohne wirkung.

Woran liegt das denn nun? Ich finde einfach den Fehler nicht :(.
Und ich bin mir sicher das es funktionieren muß, da ich diese Art Script in fast jeder meiner Seiten benutze...und da läuft es auf allen *seuftz*...Ist vermutlich noch zu früh zum basteln.

dank euch
Ole     <- frustriert
(8-)>

  1. Hallo,

    da das document.getElementById(NAME1).style.color den Farbwert mit kleinen Buchstaben zurück gibt, solltest du folgenden schreiben:
    if (document.getElementById(NAME1).style.color == "#cccccc")

    Mit freundlichen Grüßen
    Lanthan

    1. hi

      da das document.getElementById(NAME1).style.color den Farbwert mit kleinen Buchstaben zurück gibt, solltest du folgenden schreiben:
      if (document.getElementById(NAME1).style.color == "#cccccc")

      es ist wohl zwingend erforderlich das ich es so schreibe...*grummel*
      da soll mal einer drauf kommen....vor allem um die uhrzweit.

      dank dir vielmals :)

      so long
      ole
      (8-)>

    1. Ein kleines JavaScript (wirklich winzig):

    function lichtaus(NAME1)
    {
    if (document.getElementById(NAME1).style.color == "#CCCCCC")
        {
         document.getElementById(NAME1).style.color = "#FFCC00";
        }
    else
        {
        document.getElementById(NAME1).style.color = "#CCCCCC";
        }
    }

    1. du solltest mit Variabeln arbeiten, damit sparst du dir Tipparbeit und Overhead durch mehrfachen Funktions aufruf.

    2. Bei Fehler solltest du Kontrollieren, das das was du erwartest auch passiert, bzw. die Werte überprüfen.

    3. nur als Tipp, es gibt beim Programmmieren Konventionen, die es Programmieren leichter machen sollen Programme zu entschlüsseln. z.b. kennzeichnen Variabeln in Großbuchstaben normalerweise Konstanten.

    Also hier ein Ansatz der dir helfen hätte können den Fehler zu finden:

    var DEBUG = true;

    function lichtaus(name)
    {

    if(typeof document.getElementById == 'undefined')
    return alert('dein Browser ist zu alt für meine Seite');

    var obj = document.getElementById(name);

    if(!obj || !obj.style) return alert('oops');

    if(DEBUG) alert(obj.style.color);

    obj.style.color = (obj.style.color.toLowerCase() == '#ccc') ? '#FC0' : '#ccc'

    }

    Struppi.

    1. hi struppi

      1. du solltest mit Variabeln arbeiten, damit sparst du dir Tipparbeit und Overhead durch mehrfachen Funktions aufruf.
      1. Bei Fehler solltest du Kontrollieren, das das was du erwartest auch passiert, bzw. die Werte überprüfen.
      1. nur als Tipp, es gibt beim Programmmieren Konventionen, die es Programmieren leichter machen sollen Programme zu entschlüsseln. z.b. kennzeichnen Variabeln in Großbuchstaben normalerweise Konstanten.

      ich werde das in zukunft berücksichtigen...werde außerdem meine rudimentären javascript kenntnisse aufpolieren, damit ich z.B. verstehe was das von dir gepostet script bedeutet ohne mich durch meine bücher wühlen zu müssen ;).

      dank dir

      so long
      ole
      (8-)>