problem backgroundColor

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • problem backgroundColor

    Guten Morgen,

    ich versuche in einer Tabelle oncklick die td durchzufärben.
    Dabei soll aber die vorherig markierte Zeile wieder weiss werden.

    Das markieren klappt, nur die vorherige Zeile blebit auch eingefärbt.
    Wer kan nmir einen Tip geben?
    Danke.

    Übrigens ich verwende prototype!

    PHP-Code:
    function MarkRow(tabletd) {  
      var 
    elm = $(td).up('tr');
      var 
    tds = $(elm).getElementsByTagName('td');

      for(var 
    0tds.lengthi++) {
        if(
    typeof tds[i].style.backgroundColor) {

          
    delete tds[i].style.backgroundColor;

        }
        
    tds[i].style.backgroundColor "#3399CC";
        
    tds[i].style.color "#FFFFFF";
        
    tds[i].style.fontWeight "bold";
      }


    Danke.
    Zuletzt geändert von petro_0; 18.01.2010, 09:26.
    gruss pedro

  • #2
    Hi!

    z.B.

    PHP-Code:
       $i=1;
       while(
    $row mysql_fetch_array($result))
       {
          
    $color = ($i 2) ? "#000000" "#FFFFFF";
          echo 
    "<tr><td bgcolor='$color'>$i. TEXT</td></tr>";
          
    $i++;
       } 
    mfg streuner
    Erst wenn der letzte FTP Server kostenpflichtig, der letzte GNU-Sourcecode verkauft, der letzte Algorithmus patentiert,
    der letzte Netzknoten verkommerzialisert ist, werdet Ihr merken, dass Geld nicht von alleine programmiert.

    "Diese Software verdient die 3 großen GGG: --- Gesehen --- Gelacht --- Gelöscht ---"

    Kommentar


    • #3
      nein ich meine.ich will die zeile nur markieren die gerade angeklickt wird.
      gruss pedro

      Kommentar


      • #4
        Let me google that for you

        usw.

        http://www.tiptom.ch/homepage/faq.html?q=zellelink

        mfg streuner
        Erst wenn der letzte FTP Server kostenpflichtig, der letzte GNU-Sourcecode verkauft, der letzte Algorithmus patentiert,
        der letzte Netzknoten verkommerzialisert ist, werdet Ihr merken, dass Geld nicht von alleine programmiert.

        "Diese Software verdient die 3 großen GGG: --- Gesehen --- Gelacht --- Gelöscht ---"

        Kommentar


        • #5
          habs gelöst

          danke erstmal kollegen!

          für alel die mal sowas brauchen.
          habs so gelöst:
          PHP-Code:

          markedRows 
          = {};

          function 
          MarkRow(td) {
            var 
          newColor "#3399CC";
            var 
          oldCol td.style.backgroundColor;
            var 
          tableId = $(td).up('table').id;
            var 
          elm = $(td).up('tr');
          //Die markierte Zeile nochmal geklickt
            
          if(td.style.backgroundColor == newColor) return;
          //Die Tabelle wurde noch nie markiert, Array initialisieren
            
          if(typeof markedRows[tableId] == 'undefined') {    
              
          markedRows[tableId] = {
                
          oldColorfalse,
                
          rowIdfalse
              
          }
            } else {    
          //Tabelle wurde schon geklickt, alte Spalte wiederherstellen
              
          var tds = $(markedRows[tableId].rowId).getElementsByTagName('td');
              for(var 
          0tds.lengthi++) {
                
          tds[i].style.backgroundColor markedRows[tableId].oldColor;
                
          tds[i].style.color "#000000";
                
          tds[i].style.fontWeight "normal";
              } 
            }
            
            var 
          tds = $(elm).getElementsByTagName('td');
            for(var 
          0tds.lengthi++) {
              
          tds[i].style.backgroundColor newColor;
              
          tds[i].style.color "#FFFFFF";
              
          tds[i].style.fontWeight "bold";
            }
            
          markedRows[tableId] = {
              
          oldColoroldCol,
              
          rowIdelm.id
            
          }

          Zuletzt geändert von petro_0; 18.01.2010, 21:01.
          gruss pedro

          Kommentar


          • #6
            Hallo,

            auch wenn es zu spät kommt, hast du schonmal von Expando-Properties gehört? In JavaScript kannst du jedem Objekt zusätzliche Eigenschaften verpassen und in deinem Falle könnte man dort die vorhergehende Farbe speichern, statt in einem zusätzlichen Objektliteral.

            Gruß,

            Amica
            [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
            Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
            Super, danke!
            [/COLOR]

            Kommentar


            • #7
              Wozu überhaupt die „vorherige” Farbe speichern, wenn nur zwischen zweien gewechselt werden soll?

              Ausserdem sollte man Darstellungsangaben auch aus dem JS heraushalten.
              Die sinnvollere Vorgehensweise wäre also, per JavaScript Klassen zu setzen/entfernen - und die Elemente dann darüber im Stylesheet zu formatieren.
              Dann braucht es auch nicht mehr drei Zuweisungen im JS für Hintergrundfarbe, Schriftfarbe und -gewicht.
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Kommentar


              • #8
                Expando-Properties

                Expando-Properties leider noch nie gehört...
                aber schau ich mir an...
                danke für denn tip...

                ja warum die vorherige sprache speichern...damit keine zeile standardmässig falsch gefärbt wird.z.b. beim cyclen,,,,
                gruss pedro

                Kommentar

                Lädt...
                X