Tobias: Variation: <div> onclick display:none

Hallo noch mal,

ich habe noch eine variation meiner hier [http://forum.de.selfhtml.org/?t=53714&a=close#t53714 ] gestellten und gluecklicherweise auch beantworteten Frage zu Darstellungsproblemen von <span> Bereichen in NS.

Davon ausgehend, dass die Probleme meiner Darstellung daran lagen, dass ich Blockelemente innerhalb von <span> verwendet habe, was den IE nicht stoert, habe ich meinen Code unter ausschliesslicher Verwendung von <span> und <BR /> umgeschrieben, was den erwuenschten Effekt hatte.

Dann wollte ich aber dennoch versuchen, einfach das umfassende Element von <span> zu <div> zu veraendern, denn <div> kann ja - wenn ich das richtig verstehe - andere Blockelement beinhalten. Diesbezueglich war ich dann fasziniert zu sehen, dass Netscape sich immer dann nicht so verhaelt wie intendiert, wenn irgendein Block-Element <P> oder <div> oder <H2> in dem Block steht, der per onclick display:none ausgeblendent werden soll.

Das Problem stellt sich folgendermassen dar:

Bereich (a) ist beim Laden sichtbar, soll bei onclick gegen Bereich (b) getauscht werden. Bei einem weiteren click soll nun (b) unsichtbar werden und (a) wieder sichtbar. Die Einblendung von (b) funktioniert unabhaengig davon ob in dem Bereich Blockelemente vorhanden sind oder nicht. Beim Ausblenden funktioniert das aber nicht: (a) wird zwar wieder dargestellt, (b) aber nicht geloescht - solange Blockelemente im nicht-darzustellenden Bereich vorhanden sind und zwar unabhaengig davon, ob dieser als <span id="x"> oder <div id="x"> ausgezeichnet ist.

Wenn <div> aber andere Blockelemente enthalten kann, wieso koennen diese dann nicht ausgeblendet werden?

Hier ist der Code, der im NS7 nicht funktioniert schematisch:

  
  
<div id="a" style="display:block;">  
  
<a href="javascript://"  
onclick="document.getElementById('a').style.display='none';  
document.getElementById('b').style.display='block';">  
display (b)</a>  
  
</div>  
  
<div id="b" style="display:none;">  
  
  <div class="xyz">testtext</div>  
  
<BR />  
| <a href="javascript://"  
onclick="document.getElementById(b).style.display='none';  
document.getElementById(a).style.display='block';">  
close </a>  
  
</div>  
  

Wie gesagt, wenn ich statt

"<div class="xyz">testtext</div> <span class="xyz">testtext"</div> verwende, dann funktioniert alles wie es soll. Das verstehe ich nicht, wenn <div> weitere Blockelemente beinhalten darf.

Danke im voraus!

Gruss,
Tobias

  1. Hi,

    Dann wollte ich aber dennoch versuchen, einfach das umfassende Element von <span> zu <div> zu veraendern, denn <div> kann ja - wenn ich das richtig verstehe - andere Blockelement beinhalten.

    ja, richtig.

    Diesbezueglich war ich dann fasziniert zu sehen, dass Netscape sich immer dann nicht so verhaelt wie intendiert, wenn irgendein Block-Element <P> oder <div> oder <H2> in dem Block steht, der per onclick display:none ausgeblendent werden soll.

    Netscape 3, 4, 6, 7?

    <a href="javascript://"

    Hussa. Wie wäre es mit void(0)?

    onclick="document.getElementById('a').style.display='none';

    Warum returnierst Du keinen falschen Wert?

    document.getElementById('b').style.display='block';">

    Ein Netscape 4 beispielsweise kann kein DOM.

    Wie gesagt, wenn ich statt
    "<div class="xyz">testtext</div> <span class="xyz">testtext"</div> verwende, dann funktioniert alles wie es soll. Das verstehe ich nicht, wenn <div> weitere Blockelemente beinhalten darf.

    Ich verstehe es auch nicht, zumal ich mit Mozilla bereits ähnliche Dinge erfolgreich durchgeführt habe. Hast Du eine URL zu einer Testseite?

    Cheatah

    --
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Hallo,

      Warum returnierst Du keinen falschen Wert?

      Weil JavaScript und TennisScript inkompatibel sind; erstens heißt es hier return false; und da return fault; - und zweitens ist die Wirkungsweise komplett anders: hier wird ein boole'scher Wert zurückgegeben, dort führt das statt dessen automatisch zu einem player['serving'].points++

      SCNR,

      Utz

      --
      Yes, no, maybe...I don't know...Can you repeat the question?
    2. Hallo, und noch einmal.

      Irgendwas hat mich heute auf dem Kieker... das ist jetzt schon der zweite versuch, diese Antwort zu schreiben.

      Es ist unglaublich oder wahr, nachdem ich eineinhalb Stunden den gleichen fehler produzieren konnte funktioniert es natuerlich genau in dem Moment in dem ich den Effekt vorfuehren will. Ich habe nicht die geringste Ahnung warum es ploetzlich funktioniert...

      Die <div> variante ist zu finden unter

      http://tschwarz.freepage4you.de/aad/index.php

      die <span> Variante unter

      http://tschwarz.freepage4you.de/aad/worksns7.php

      Hussa. Wie wäre es mit void(0)?

      onclick="document.getElementById('a').style.display='none';

      Warum returnierst Du keinen falschen Wert?

      document.getElementById('b').style.display='block';">

      Abgesehen davon, dass der welcher Fehler auch immer es gewesen sein mag, es ja wohl meiner war - was waeren die Vorteile von void(0)?

      Nochmal danke!

      Gruss,
      Tobias

      1. notwendige Ergaenzung:

        Es handelt sich um den mit "en passant" bezeichneten Bereich in der linken Leiste. Die anderen includes links sind noch von dem vorherigen "Block-Element in <span>"-Fehler befallen.

        Gruss,
        Tobias