ella: Menü; display=block wenn Javascript deaktivert

Beitrag lesen

@@ChrisB:

nuqneH

Ungefähr so:

function abs1(elementId) {

var elementStyleObj = document.getElementById(elementId).style;
  if (elementStyleObj.display != "block") {
    elementStyleObj.display = "block";
  }
  else {
    elementStyleObj.display = "none";
  }
}


>   
> Oder <http://de.selfhtml.org/javascript/sprache/bedingt.htm#entweder_oder@title=kürzer>:  
>   
> ~~~javascript

function abs1(elementId) {  

>   var elementStyleObj = document.getElementById(elementId).style;  
>   elementStyleObj.display = elementStyleObj.display != "block" ? "block" : "none";  
> }

Anstelle immer den Wert der display-Eigenschaft abzufragen, könnte man dem Elementbjekt auch ein Flag spendieren:

function abs1(elementId) {

var elementObj = document.getElementById(elementId);
  elementObj.isVisible = !elementObj.isVisible;
  elementObj.style.display = elementObj.isVisible ? "block" : "none";
}


>   
> Oder kürzer:  
>   
> ~~~javascript

function abs1(elementId) {  

>   var elementObj = document.getElementById(elementId);  
>   elementObj.style.display = (elementObj.isVisible = !elementObj.isVisible) ? "block" : "none";  
> }

Aber eigentlich sollte man mit JavaScript keine CSS-Eigenschaften ändern.

Qapla'

PS: Was ist das eigentlich für ein du^Wunglücklich gewählter Funktionsbezeichner? abs1?? Wofür steht das?

Ich würde die Funktion toggle nennen.

Hi,

weill ich damit weiterarbeiten möchte. Damit die einzelnen Absätze auch offen bleiben.

zb so:

  
function abs1(element)  
{  
var status = document.getElementById(element).style.display;  
  
document.getElementById('zus1').style.display = 'none';  
document.getElementById('zus2').style.display = 'none';  
...usw..  
if(status == "none"){document.getElementById(element).style.display = "block";}  
  
  
}  
##  
function abs2(element)  
{  
var status = document.getElementById(element).style.display;  
  
document.getElementById('zus1').style.display = 'none';  
document.getElementById('zus2').style.display = 'none';  
..usw..  
if(status == "none"){document.getElementById(element).style.display = "block";}  
}  
  

Und auf den Unterseiten, damit die Navi "abs1" auch offen bleibt:

<script type="text/javascript">abs1('zus1');</script>  
oder  
<script type="text/javascript">abs1('zus2');</script>  

bsw. auf anderer Seite wo "abs2" offen bleiben soll.
<script type="text/javascript">abs2('zus1');</script>