tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
1
ZUGRIFFE
258
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Zeebo Zeebo ist offline Grünschnabel
    Registriert seit
    Aug 2011
    Beiträge
    1
    Hallo!

    Ich habe folgendes Problem:
    Per Javascript lasse ich Tabellenzeilen einer bestimmten CSS Klasse ein- und ausblenden. Dies funktioniert auch in Firefox & Co.
    Aber beim IE habe ich das Problem, dass ein DIV, das sich in einer Tabellenzelle befindet, nach dem einblenden nicht wieder ausblendet. Die Tabellenzeile ist zwar weg, aber der Inhalt des DIVs überlagert nun die Tabelle.

    Beispiel:

    HTML-Code:
    <table>
      <tr class="folder">
        <td>Text in Spalte 1</td>
        <td>
          <div>Irgendwas...</div>
          <div>Noch etwas...</div>
        </td>
      </tr>
    </table>
    Beim setzen von tr.folder per JS auf den Wert "none" wird diese ausgeblendet,
    die DIVs bleiben jedoch sichtbar und der Text "Irgendwas..." und "Noch etwas..." überlager nun die Tabelle.

    Woran liegt dies?
    Wie kann ich dies lösen?

    MfG Zeebo
     

  2. #2
    Avatar von hela
    hela hela ist offline Mitglied Smaragd
    tutorials.de Premium-User
    Registriert seit
    Oct 2004
    Beiträge
    1.123
    Zitat Zitat von Zeebo Beitrag anzeigen
    Woran liegt dies?
    Ich weiß es auch nicht. Bei mir funktioniert das.
    Zitat Zitat von Zeebo Beitrag anzeigen
    Wie kann ich dies lösen?
    Versuch es mal so: Ändere per Javascript nicht die Inline-Styles direkt sondern mach das über die Vergabe und das Löschen von entsprechenden Klassenattributen im HTML. Das ist die "elegantere" Methode.
    Beispiel:
    HTML-Code:
    <!DOCTYPE html>
    <html>
      <head>
        <meta charset="UTF-8">
        <title>HTML5: Mini-Template</title>
    
        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
        <script type="text/javascript">
          if(typeof(jQuery)!="undefined") {
            $(document).ready(function() {
              $("body > p:first-child").text("Das DOM ist geladen und kann mit jQuery manipuliert werden.");
              $("tr.folder").addClass("hidden");
            });
          };
        </script>
    
        <style type="text/css">
          .hidden {
            display: none;
          }
        </style>
    
      </head>
      <body>
    
        <p>jQuery ist nicht aktiv.</p>
    
        <table>
          <tr>
            <td>Text in Zeile 1</td>
            <td>
              <div>Irgendwas...</div>
              <div>Noch etwas...</div>
            </td>
          </tr>
          <tr class="folder">
            <td>Text in Zeile 2</td>
            <td>
              <div>Irgendwas...</div>
              <div>Noch etwas...</div>
            </td>
          </tr>
        </table>
    
      </body>
    </html>
    Das Klassenattribut der entsprechenden Tabellenzeile erhält per JS/jQuery den Wert "hidden" und in den CSS-Deklarationen des Dokuments ist dieser Klassenselektor enthalten, so dass die Zeile ausgeblendet wird. Die Sichtbarkeit der Tabellenzeile kannst du dann mit der jQuery-Methode removeClass() wieder herstellen.

    Falls du kein jQuery verwenden möchtest, dann nimm die Funktion jscss.js von Christian Heilmann.
     

Ähnliche Themen

  1. Probleme im IE beim Ein-und Ausblenden von Tabellenspalten
    Von Necro_nomicon im Forum Javascript & Ajax
    Antworten: 1
    Letzter Beitrag: 08.07.09, 13:43
  2. Antworten: 6
    Letzter Beitrag: 31.05.07, 12:07
  3. 2 Probleme beim DataGrid. beim Löschen und Hinzufügen einer Zeile
    Von WaZZkeSS im Forum .NET Datenverwaltung
    Antworten: 2
    Letzter Beitrag: 18.06.06, 00:26
  4. Highlight einer Tabellenzeile
    Von Roman Locher im Forum Flash Plattform
    Antworten: 3
    Letzter Beitrag: 23.08.05, 18:53
  5. Antworten: 3
    Letzter Beitrag: 15.06.05, 10:55