Paco: Script funktioniert im Firefox aber nicht im IE (mal wieder..)

Hallo!
Mal wieder ein INternetExplorer-Problem..
Ich habe ein kleines Javascript, mit dem ich Textfelder ein- und ausblende, das im Firefox brav seinen Dienst tut aber im IE streikt.

<script type="text/javascript">
function toggle_vis(id) {
       var e = document.getElementById(id);
       if(e.style.display == 'block')
          e.style.display = 'none';
       else
          e.style.display = 'block';
    }
</script>

Eigentlich sehr simpel und display = 'block' sollte der IE doch können.
Oder hab ich da einen syntaxfehler eingebaut, den der FF verzeiht?

Vielen Dank im voraus,
Paco

  1. Hallo,

    Wie rufst du die Funktion auf?

    Gruß

    1. Hallo,

      Wie rufst du die Funktion auf?

      Gruß

      z.B. mit <a onclick="toggle_vis('div_a');">Anmerkungen</a>

      1. [latex]Mae  govannen![/latex]

        Wie rufst du die Funktion auf?

        z.B. mit <a onclick="toggle_vis('div_a');">Anmerkungen</a>

        Und du hast auch vorher eine der angegebenen display-werte »im javascript« und nicht nur im CSS gesetzt? Wenn nicht, mußt du den Initialwert erst mal ermitteln, das geht nicht direkt über element.style.display.

        Cü,

        Kai

        --
        When the limos return for their final review, it's all thru'
        - all they can see is the morning goo.
        "There's no-one left alive - must be draw."
        So the Blackcap Barons toss a coin to settle the score.
        ie:{ fl:( br:< va:) ls:? fo:| rl:? n4:° ss:{ de:] js:| ch:? mo:| zu:|]
        1. Hallo Kai345,

          Und du hast auch vorher eine der angegebenen display-werte »im javascript«

          ... oder im HTML-Tag selbst hinterlegt. Wenn nicht, könnte currentStyle (einmalig) helfen.

          Mit freundlichem Gruß
          Micha

      2. Hallo,

        Versuche das:

          
            function toggle_vis(id) {  
               var e = document.getElementById(id);  
               if(e.style.display == 'none')  
                  e.style.display = 'block';  
               else  
                  e.style.display = 'none';  
            }  
        
        

        element.style enthält nicht ermittelte Werte (also hier ob ein Element als Block dargestellt wird etc.). Ansonsten hat der Code bei mir auch im IE7 funktioniert. Bei beiden Browsern musste man allerdings am Anfang einen Extraclick machen, wegen genannter Tatsache.

        Ich würde den Link so angeben:
        <a href="#" onclick="toggle_vis('element');return false;">Anmerkungen</a>

        Gruß

        1. Hi,

          Ich würde den Link so angeben:
          <a href="#" onclick="toggle_vis('element');return false"

          Warum ein Link und nicht einfach ein p, span, img, etc... es sei denn Du hast eine Alernativurl für Javascripthasser.

          Gruesse, Joachim

          --
          Am Ende wird alles gut.
  2. Ich habe ein kleines Javascript, mit dem ich Textfelder ein- und ausblende, das im Firefox brav seinen Dienst tut aber im IE streikt.

    Das Skript sollte problemlos auch im IE laufen. Es ist aber umständlich.
    einfacher:

    function toggle_vis(id) {  
       var e = document.getElementById(id);  
       if(e && e.style) e.style.display = e.style.display == 'none' ? '' : 'none';  
       else alert('Fehler');  
    }  
    
    

    Struppi.