JürgenB: Ausklappbare Leiste

Beitrag lesen

Hallo Chris,

deine Frage aus dem Doppelposting https://forum.selfhtml.org/?t=160826&m=1046163:

Mit diesen Skript kann ich die Tabelle auf Klick wieder verschwinden oder erscheinen lassen:

<script type="text/javascript">
function switchlayer(Layer_Name) {
  var Browser = document.getElementById? 1:0 ;

if (Browser) {
    document.getElementById(Layer_Name).style.display=(document.getElementById(Layer_Name).style.display=='table') ? 'none' : table';
  }
}
</script>

[...]

<table border="1" style="width: 100%;">
  <tr>
    <td><a href="#" onclick="javascript:switchlayer('1'); return false;">Link</a>
  </tr>
</table>
<table border="1" style="width: 100%; display: none;" id="1">
  <tr>
    <td>Neue Tabelle</td>
  </tr>
</table>

Zur Info: Dieses ist ein leicht modifizierter Skript von der Seite http://www.it-academy.cc/article/1236/JavaScript:+aufklappbares+Menue.html aber dieser ist ziemlich Browser-unkonform. Lasse ich jetzt die zwei table-Variablen im Skript stehen, funktioniert er zwar im Netscape, jedoch nicht im Internet Explorer. Für den IE scheint nur die Variable block zu funktionieren. Deshalb sehe ich als einzigen Ausweg, diesen Skript über den Haufen zu werfen und auf eine alternative Lösung zurückzugreifen. Existiert da irgendwo ein Ansatz?

------------------------------------------------------------------------
Meine Antwort darauf:

id="Tabelle1" ist auch in Tabellen erlaubt. Aber vieleicht liegt dein Problem ja hier:

document.getElementById(Layer_Name).style.display=(document.getElementById(Layer_Name).style.display=='table') ? 'none' : table';

Hast du schon mal geprüft, welche Eigenschaft die Tabelle überhaupt hat? CSS-Eigenschaften können nur ausgelesen werden, wenn sie auch gesetzt wurden, und der IE kennt display:table nicht. Ich denke, diesen Teil wirst du umschreiben müssen.

Gruß, Jürgen