schließenbutton erstellen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • schließenbutton erstellen

    hallo,

    ich hatte vor kurzem etwas zu einem klapptext gepostet, der sich nach klicken auf einen button öffnet (mit div). nun will ich aber das sich der text beim klicken des nächsten buttons wieder schließt. kann man das irendwie umsetzen und wenn ja wie? so würde der text nämlich nur durch ein zweites klicken auf den ersten button wiederschließen, was der benutzer aber nicht wissen wird. somit würden alle texte geöffnet bleiben und sich eine ellenlange datei bilden...

    die homepage ist hier
  • In einer am Anfang initaliserten und leeren Variable speicherst du einfach die ID der Box, die der Benutzer als letztes geöffnet hat. Klickt dieser nun auf eine weiteren Link um eine andere Box zu öffnen, nimmst du die vorher gespeicherte ID um die vorher geöffnete Box wieder zu schließen und öffnest die neue Box usw.
  • du musst die "closeBox(id)" da einbauen wo du die neue box öffnest. ID muss aber die ID des zuvor geöffneten elementes sein da du sonst die box zu machst die noch gar nicht auf ist. außerdem musst du drauaf aufpassen, das die funktion nichts macht, wenn keine andere box offen ist. das würde zu einem fehler führen
    .:Reden Ist Schweigen und Silber Ist Gold:.

    real programmers don't comment their code: if it was hard to write, it should be hard to read!
  • @BendIt ich glaub dann ist der code nicht so geeignet für das was ich brauche, vielleicht hatte ich es falsch beschrieben insgesamt habe ich 40 id's die man in belibiger reihenfolge anklicken kann.

    hier kann man das ganz gut sehen. die drei stäbchen unter den thumbnails sind jeweils mit einem toggle befehl verbunden.

    wenn ich es richtig verstanden habe, muss ich bei diesem code nach dem ersten Stäbchen unter dem ersten thumbnail das zweite klicken, damit sich das erste schließt. würde ich aber auf, sagen wir das erste stäbchen unter der letzten thumbnail klicken, würde sich das erste gar nicht schließen.
  • du kannst auch folgende methode verwenden.

    Quellcode

    1. if(document.getElementByID('anzeigeDIV').innerHTML != '') {
    2. document.getElementByID('anzeigeDIV').innerHTML = '');
    3. } else {
    4. XMLHttpRequest() // je nach dem wie du einen request abschickst muß diese funktion hier rein
    5. }


    anzeigeDIV wäre der Bereich indem du die Daten anzeigen willst. Dieses konstrukt prüft einfach ob in dem DIV irgendein content steht, wenn ja wird er gelöscht, wenn nein wird der neue inhalt da eingefügt. damit hast du eine toggle funktion, die entweder den inhalt anzeigt oder ausblendet.

    du kannst es aber auch so machen:

    Quellcode

    1. document.getElementByID('anzeigeDIV').innerHTML = '';
    2. XMLHttpRequest(); // wieder der aufruf um den request abzuschicken


    das "löscht" in jedem fall den inhalt und lädt den neuen in das div
    .:Reden Ist Schweigen und Silber Ist Gold:.

    real programmers don't comment their code: if it was hard to write, it should be hard to read!
  • hallo,

    leider hatte ich die letzte tage/wochen sehr viel zu tun, so das ich keine zeit mehr aufbringen konnte hier noch mal vorbei zu schauen...

    ich hatte noch mal einige sachen von euch ausprobiert, musste mich aber leider meiner völligen unwissenheit im bereich java geschlagen geben.

    außderdem bin ich etwas auf suche gegangen, um zu schauen wie es auf anderen seiten gemacht wurde. ein gutes beispiel befindet sich heute im spiegel online:
    http://www.spiegel.de/wirtschaft/0,1518,475506,00.html (alle spezialltarife...)

    dort wird mit einer toggle-funktion gearbeitet, die beim wechsel zum nächsten tarif alle anderen offenen automatisch schließt.

    gefunden hatte ich das hier

    Quellcode

    1. <div id="spArticleBody">
    2. <div class="spAssetAligncenter">
    3. <!-- Vignette StoryServer 5.0 Tue Apr 03 21:38:55 2007 -->
    4. <div class="spMPCBox spMPCBoxTicker">
    5. <h4 class="spBoxHeadline">ALLE SPEZIALTARIFE - DER SPIEGEL-ONLINE-ÜBERBLICK</h4>
    6. <h3 id="spMPCTab-24526-1" class="spMPCTab spMPCTabAktiv">
    7. <a href="javascript:void(0);" onclick="spToggleMPC('24526','1')" onfocus="blur();">Der Hausarzttarif</a>
    8. </h3>
    9. <div id="spMPCContent-24526-1" class="spMPCContent" style="display:block;">
    10. Bei diesem Tarif verpflichtet sich der Patient, bei allen Erkrankungen zu einem bestimmten Hausarzt zu gehen. Falls notwendig überweist der ihn dann an Fachärzte oder ins Krankenhaus.
    11. <br clear="all" />
    12. </div>
    13. <h3 id="spMPCTab-24526-2" class="spMPCTab">
    14. <a href="javascript:void(0);" onclick="spToggleMPC('24526','2')" onfocus="blur();">Disease-Management-Programme (DMP)</a>
    15. </h3>
    16. <div id="spMPCContent-24526-2" class="spMPCContent" style="display:none;">
    17. Chronisch Kranke nehmen an einem bestimmten Behandlungs- und Vorsorgeprogramm teil, das wissenschaftlich erarbeitet wurde. Im Gegenzug gibt es eine Prämie.
    18. <br clear="all" />
    19. </div>
    20. <h3 id="spMPCTab-24526-3" class="spMPCTab">
    21. <a href="javascript:void(0);" onclick="spToggleMPC('24526','3')" onfocus="blur();">Der Beitragrückerstattungstarif</a>
    22. </h3>
    23. <div id="spMPCContent-24526-3" class="spMPCContent" style="display:none;">
    24. Wenn der Versicherte und seine volljährigen Mitversicherten ein Jahr keine Leistungen in Anspruch nehmen, gewährt die Kasse eine Prämie in Höhe von bis zu einem Zwölftel des gesamten Jahresbeitrags - also bis zu dem Doppelten dessen, was ein Versicherter im Monat bezahlt (die Hälfte des Versicherungsbeitrags wird vom Arbeitgeber bezahlt). Nicht als Leistung gelten dabei etwa Impfungen und Vorsorgeuntersuchungen.
    25. <br clear="all" />
    26. </div>
    27. <h3 id="spMPCTab-24526-4" class="spMPCTab">
    28. <a href="javascript:void(0);" onclick="spToggleMPC('24526','4')" onfocus="blur();">Tarife für Integrierte Versorgung</a>
    29. </h3>
    30. <div id="spMPCContent-24526-4" class="spMPCContent" style="display:none;">
    31. Mit der Gesundheitsreform werden Angebote zur sogenannten Integrierten Versorgung Pflicht. Dabei arbeiten Hausärzte eng mit Krankenhäusern und Reha-Einrichtungen zusammen und teilen sich sogar ein gemeinsames Budget. So sollen Doppeluntersuchungen vermieden und die Behandlungsmethoden optimal aufeinander abgestimmt werden. Für die Inanspruchnahme dieser Behandlungsform, für die die Kassen spezielle Verträge etwa mit Kliniken und Ärzten abschließen, bieten viele den Versicherten spezielle Prämien an - schließlich hoffen auch die Versicherer, so Kosten einsparen zu können.
    32. <br clear="all" />
    33. </div>
    34. <h3 id="spMPCTab-24526-5" class="spMPCTab">
    35. <a href="javascript:void(0);" onclick="spToggleMPC('24526','5')" onfocus="blur();">Der Kostenerstattungstarif</a>
    36. </h3>
    37. <div id="spMPCContent-24526-5" class="spMPCContent" style="display:none;">
    38. Die Abrechnung funktioniert ähnlich wie bei Privatpatienten. Der Versicherte zahlt beim Arzt selbst und rechnet mit seiner Krankenkasse ab. Dafür werden höhere Summen erstattet. Allerdings können die Restkosten trotzdem erheblich sein.
    39. <br clear="all" />
    40. </div>
    41. <h3 id="spMPCTab-24526-6" class="spMPCTab">
    42. <a href="javascript:void(0);" onclick="spToggleMPC('24526','6')" onfocus="blur();">Selbstbehalt</a>
    43. </h3>
    44. <div id="spMPCContent-24526-6" class="spMPCContent" style="display:none;">
    45. Dem Versicherten wird eine jährliche Prämie gutgeschrieben. Kosten - etwa für Medikamente und Krankenhausaufenthalte - werden nach verschiedenen Systemen abgezogen. Nach einem Jahr kommt der Kassensturz: Überschüsse werden erneut gutgeschrieben. Hat der Versicherte aber mehr Leistungen in Anspruch genommen, als sein Guthaben zulässt, muss er die Kosten bis zu einer gewissen Höhe - der Selbstbehaltgrenze - selbst tragen.
    46. <br clear="all" />
    47. </div>
    48. </div>
    49. </div>
    Alles anzeigen



    am ende findet man immer ein


    Quellcode

    1. <br clear="all" />
    2. </div>


    nun funktioniert das aber nicht mit dem von mir verwendeten togglebefehl:

    Quellcode

    1. <script language="JavaScript" type="text/javascript">
    2. function toggle(name)
    3. {
    4. var ans = document.getElementById(name);
    5. if (ans == null) return;
    6. if (ans.style.display != 'block')
    7. {
    8. ans.style.display = 'block';
    9. }
    10. else
    11. {
    12. ans.style.display = 'none';
    13. }
    14. }
    15. <!--
    16. function MM_openBrWindow(theURL,winName,features) { //v2.0
    17. window.open(theURL,winName,features);
    18. }
    19. //-->
    20. </script>
    Alles anzeigen


    Quellcode

    1. <a href="javascript:toggle('Text');">


    Quellcode

    1. <div id="Text" class="container">
    2. <p>hier steht dann der text
    3. </p>
    4. </div>


    bei spiegel konnte ich noch das folgende finden, was ich persönlich mit dem toggle befehl dort verbinde (leider sehe ich da gar nicht mehr durch):

    Quellcode

    1. <!-- Vignette StoryServer 5.0 Mon Sep 04 19:00:11 2006 -->
    2. <script src="http://spiegel.ivwbox.de/2004/01/survey.js" type="text/javascript"></script>
    3. <!-- /SZMFRABO -->
    4. <!-- Vignette StoryServer 5.0 Fri Mar 02 18:17:25 2007 -->
    5. <!-- # OASSetup - Auslieferung: MJX/NX - Belegung: wirtschaft/artikel -->
    6. <script type="text/javascript">
    7. <!--
    8. OAS_mjxscripturl = 'http://adserv.quality-channel.de/RealMedia/ads/adstream_mjx.ads/www.spiegel.de/wirtschaft/artikel/1/1234567890@Top1,TopRight,Left,Right,Right1,Right2,Right3,Right4,Right5,Middle,Middle1,Middle2,Bottom,Bottom3,Position1,Position2,x01,x02,x03,x04,x05,x06,x07,x08,x09,x10,x11,x12,x20,x21,x22,x70,VMiddle2,VMiddle,VRight';
    9. OAS_url = 'http://adserv.quality-channel.de/RealMedia/ads/';
    10. OAS_listpos = 'Top1,TopRight,Left,Right,Right1,Right2,Right3,Right4,Right5,Middle,Middle1,Middle2,Bottom,Bottom3,Position1,Position2,x01,x02,x03,x04,x05,x06,x07,x08,x09,x10,x11,x12,x20,x21,x22,x70,VMiddle2,VMiddle,VRight';
    11. OAS_query = '';
    12. OAS_sitepage = 'www.spiegel.de/wirtschaft/artikel';
    13. OAS_rn = '001234567890'; OAS_rns = '1234567890';
    14. OAS_rn = new String (Math.random()); OAS_rns = OAS_rn.substring (2, 11);
    15. function OAS_RICH(pos) {
    16. document.write('<a href="' + OAS_url + 'click_nx.ads/' + OAS_sitepage + '/1' + OAS_rns + '@' + OAS_listpos + '!' + pos + OAS_query + '" target="_blank" ><img src="' + OAS_url + 'adstream_nx.ads/' + OAS_sitepage + '/1' + OAS_rns + '@' + OAS_listpos + '!' + pos + OAS_query + '" border="0" alt=""><\/a>');
    17. }
    18. if (navigator.userAgent.indexOf('Mozilla/3') == -1) {
    19. document.write('<scr' + 'ipt type="text/javascript" language="JavaScript1.1" src="' + OAS_url + 'adstream_mjx.ads/' + OAS_sitepage + '/1' + OAS_rns + '@' + OAS_listpos + OAS_query + '"><\/scr' + 'ipt' + '>');
    20. }
    21. //-->
    22. </script>
    23. <!-- /OASSetup -->
    24. <script type="text/javascript">
    25. <!--
    26. OAS_RICH('Top1');
    27. // -->
    28. </script><br class="spBreakNoHeight" clear="all" /><div style="display:none;"><script type="text/javascript">
    29. <!--
    30. OAS_RICH('Middle');
    31. // -->
    32. </script>
    Alles anzeigen



    nun weiß ich nicht, gibt es eine einfache variante, wie das "clearall" für den togglebefehl?
  • Hallo,

    das "clear" hat überhaupt nichts mit dem "toggeln" und JavaScript zu tun, sollte ausserdem nicht mehr verwendet werden (CSS) und macht, meiner Meinung nach, am Ende eines Divs überhaupt keinen Sinn, da ein Div ein Block-Element ist.

    Was ist denn eigentlich Dein Problem?

    70abc

    PS: Schau Dir vielleicht mal jQuery an (www.jquery.de), das nimmt Dir sehr viel Arbeit ab und hat z.B. "toggel"-Funktionen schon eingebaut...
    We raise hopes, here ... until they're old enough to fend for themselves.
    - Mike Callahan
  • hi!

    du brauchst dir doch nur ne funktion zu basteln die alle (möglich) offenen divs schließt bevor das neue geöffnet wird.

    ich habs bie mir mit ner schleife gelöst, da eigentlich nie mehr als 4 oder 5 offen sind bei mir.

    kommt nun darauf an wie sich die IDs bei dir zusammen setzen. wenn du es nur mit zahlen machst wäre es am einfachsten, da du die schleife einfach von 0 (oder 1) bis zum letzten eintrag durchgehn musst und dabei bei jedem durchlauf

    "innerHTML = '';

    und

    "style.display = 'none';

    ausführen.

    dann rufst du einfach vor dem öffnen eines neuen divs die funktion auf.


    btw: das soll nur das prinzip verdeutlichen wie ich es für mich gelöst habe ;)
    mfg da BendIt
    .:Reden Ist Schweigen und Silber Ist Gold:.

    real programmers don't comment their code: if it was hard to write, it should be hard to read!
  • Hallo,

    irgendwie komme ich nicht so ganz mit, was Du eigentlich genau haben willst.
    BendIt's Lösungsansätze gehen davon aus, das Du immer neuen Inhalt in Deine Divs rein lädts. Aber so wie ich das verstehe, hast Du alle Divs mit Inhalt, nur sind erstmal alle unsichtbar.

    Es würde sicherlich helfen, wenn Du die Ausgangssituation und das Verhalten nochmal genau beschrieben würdest...

    70abc
    We raise hopes, here ... until they're old enough to fend for themselves.
    - Mike Callahan
  • ok,
    also hier -> www.dschungelfilm.de/archiv.html
    kann man es ganz gut sehen.

    es sind mehrere sachen gelistet, die sich nach dem klicken auf einen button (die drei stäbchen unter dem bildern) mittels toggle öffnen (ich hab es mal klapptext genannt) oder besser, sichtbar werden.

    der toggle benutzt als sucher die div funktion - also der befehl: toggle mal zum div 'Text' etc.

    Quellcode

    1. <a href="javascript:toggle('Text');">


    dort angekommen wird Text sichtbar durch

    Quellcode

    1. <div id="Text" class="display: none;">
    2. <p>hier steht dann der text
    3. </p>
    4. </div>


    da sich jetzt beim klicken auf den nächsten button wieder etwas öffnet, aber das vorhergehende offen bleibt, brauche ich einen close-button oder einen befehl der die vorhergehenden information automatisch schließt.

    zum beispiel - schließe <div id='Text'> oder schließe alle <div id>

    70abcs lösung scheint da für mich ziemlich geeignet zu sein.

    ...ich kenn mich mit javascript befehlsabläufen leider gar nicht aus - ich wüsste auch nicht wie ich die befehlskette schreiben sollte... :(
  • hier mal meine lösung, die genau das macht was du suchst...

    Quellcode

    1. function closenfo() {
    2. var what;
    3. for (var i=1; i<=3; i++) {
    4. if (i == 1) {what = 'code';}
    5. if (i == 2) {what = 'projects';}
    6. if (i == 3) {what = 'news';}
    7. if (document.getElementById(what).innerHTML != '' || document.getElementById(what).style.visibility != "hidden") {
    8. document.getElementById(what).innerHTML = '';
    9. document.getElementById(what).style.visibility = "hidden";
    10. }
    11. }
    12. }
    Alles anzeigen


    da ich meine ids nicht mit zahlen fülle und es auch nicht soviele sind, geht das ganz gut... und ist natürlich beliebig erweiterbar. allerdings macht es ab einer gewissen größe keinen sinn mehr, da man zu viel arbeit mit tippen hat. dann sollte man die ID´s so umstellen, das man die divs mit einem eindeutigen bezeichner für die kategorie nimmt und an den ein eineindeutige zahl anhängt... damit lässt sich die sache auf die schleife reduzieren...

    hoffe das hilft dir ein wenig weiter....


    so long da BendIt ;)
    .:Reden Ist Schweigen und Silber Ist Gold:.

    real programmers don't comment their code: if it was hard to write, it should be hard to read!
  • @70abc das ist die seite, auf der es eingebaut werden soll

    @BendIt
    den code muss ich so wie er da steht in die javascript datei einfügen?

    was muss ich dann im der html schreiben? um darauf zuzugreifen?

    den code interprtiere ich folgendermaßen:

    i=1 -> für 1 kann ich auch "Text", "Bilder" etc. schreiben?

    Quellcode

    1. {what = 'code';}
    2. {what = 'projects';}
    3. {what = 'news';}

    das verstehe ich noch nicht ganz

    da hier 'hidden' auftaucht, gehe ich davon aus, das damit die zuweisung "einklappen" gemeint ist...

    Quellcode

    1. document.getElementById(what).style.visibility = "hidden";


    ah, ok(?):
    1, 2, 3 sind die drei buttons von mir (info, bilder, film)

    what - sind die bezeichnungen für die buttons, welche immer gleich bleiben - ich könnte auch 'info' und 'bilder' schreiben statt 'code' und 'projects'
    den dritten könnte ich auch weglassen(?) -

    i++ - wäre dann, das ich noch z.b. einen vierten, fünften etc. dazu nehmen könnte

    in der html müsste ich dann auf den close-button den folgenden befehl legen:

    Quellcode

    1. "javascript:closenfo('code');"


    kann sein das hier völligen mist schreibe, da ich mich javascript nicht auskenne, es ist nur ein schlussfolgerung...
  • "laco1" schrieb:


    @BendIt
    den code muss ich so wie er da steht in die javascript datei einfügen?


    NEIN. Das Bsp. sollte nur zeigen wie ich es bei mir gelöst habe.

    "laco1" schrieb:


    was muss ich dann im der html schreiben? um darauf zuzugreifen?


    Benutzt du kein php?

    du musst diese funktion (wenn du sie für dich angepasst hast) da einfügen, wo dein restlicher js code steht. also falls du den code in einer externen datei ausgelagert hast, muss die funktion da rein...

    "laco1" schrieb:


    den code interprtiere ich folgendermaßen:

    i=1 -> für 1 kann ich auch "Text", "Bilder" etc. schreiben?


    NEIN. i ist eine zählvariable für die schleife und diese wird mit 1 initialisiert. d.h. das die schleife bei 1 anfängt zu zählen. es dürfen NUR zahlen benutzt werden.

    "laco1" schrieb:


    Quellcode

    1. {what = 'code';}
    2. {what = 'projects';}
    3. {what = 'news';}

    das verstehe ich noch nicht ganz

    da hier 'hidden' auftaucht, gehe ich davon aus, das damit die zuweisung "einklappen" gemeint ist...

    Quellcode

    1. document.getElementById(what).style.visibility = "hidden";



    um das mal zu erklären:

    ich benutze die schleife um alle elemente die ich schließen will durchzugehen.
    da man für jedes ellement eine eigene anweisung schreiben müsste und das eigentlich nicht sehr flexibel ist, pack ich das in die schleife die in einer funktion steht.

    ich hoffe du weist wie schleifen funktionieren und welche parameter diese erwarte bzw akzeptieren?

    -> http://de.selfhtml.org/javascript/sprache/schleifen.htm#for

    for(i=1; <- initialisierung der zählvariable und belegung mit einem start wert
    for(i=1; i <= 3; <- führt die schleife so lange aus bis dieser ausdruck wahr ist (also i = 3 ist)
    for(i=1; i <= 3;i++) <- ist ein postInkrement (sollte man wissen was das macht :)

    ich nutze also die zählvariable als index um alle ellemente die ich schließen möcht durchzugehn.

    dabei lege ich fest, bei welcher zahl welches div gemeint ist. also 1 ist bei mir 'code'. d.h. das das div mit der id code als erstes geschlossen wird, danach projects und danach news.

    "laco1" schrieb:


    ah, ok(?):
    1, 2, 3 sind die drei buttons von mir (info, bilder, film)

    what - sind die bezeichnungen für die buttons, welche immer gleich bleiben - ich könnte auch 'info' und 'bilder' schreiben statt 'code' und 'projects'
    den dritten könnte ich auch weglassen(?) -

    i++ - wäre dann, das ich noch z.b. einen vierten, fünften etc. dazu nehmen könnte

    in der html müsste ich dann auf den close-button den folgenden befehl legen:

    Quellcode

    1. "javascript:closenfo('code');"


    kann sein das hier völligen mist schreibe, da ich mich javascript nicht auskenne, es ist nur ein schlussfolgerung...


    du hast doch sicher eine funktion die mit parameter das richtige div öffnet oder so?

    und da rufst du einfach ALS ERSTES die closenfo() funktion auf. das schließt alle offenen ellemente und öffnet das "neue"

    jetzt ein wenig eindeutiger?

    mfg da BendIt
    .:Reden Ist Schweigen und Silber Ist Gold:.

    real programmers don't comment their code: if it was hard to write, it should be hard to read!
  • ich habe den code ausprobiert mit dem ergebnis, dass sich alle offenen toggles schließen, trotz der jeweils zugewiesenen id

    bei der überprüfung im internet explorer (neueste version) ist mir aufgefallen, das die ansicht der dateien zerstückelt und verschoben angezeigt wird - warum auch immer.

    in opera, firefox und netscape (neueste versionen) funktioniert alles wie oben angegeben.

    für safari bekomme ich noch eine meldung - oder hat einer von euch safari zum testen? dschungelfilm.de/archiv.html
    (den ersten von den drei buttons unter dem bild anklicken, dann auf "close" klicken)


    leider kann ich mich erst wieder in 10 tagen mit der problematik beschäftigen, da ich unterwegs bin...
  • "laco1" schrieb:

    ich habe den code ausprobiert mit dem ergebnis, dass sich alle offenen toggles schließen, trotz der jeweils zugewiesenen id

    leider kann ich mich erst wieder in 10 tagen mit der problematik beschäftigen, da ich unterwegs bin...


    Hab mir mal kurz den Code auf Deiner Seite angeschaut und würde das so ab ändern:


    Quellcode

    1. function toggle(id, type)
    2. {
    3. types = new array('Text', 'Stills');
    4. var ans = document.getElementById(type + id);
    5. if (ans) {
    6. if (ans.style.display != 'block') {
    7. ans.style.display = 'block';
    8. } else {
    9. ans.style.display = 'none';
    10. }
    11. }
    12. for (var i = 0; i < types.length; ++i) {
    13. if(types[i] != type && document.getElementById(types[i] + id) {
    14. document.getElementById(types[i] + id).display = 'none';
    15. }
    16. }
    17. }
    Alles anzeigen


    Der HTML Teil müsste dann z.B. so aussehen (Achtung in Deinem HTML-Code fehlen "</td>" Tags:

    Quellcode

    1. <td width="8" height="12">
    2. <!-- button1 -->
    3. <a href="javascript:toggle(15, 'Text');" title="info" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('Image48','','http://www.dschungelfilm.de/bilder/testg.jpg',1)">
    4. <img name="Image48" border="0" src="http://www.dschungelfilm.de/bilder/tests.jpg" width="4" height="12">
    5. </a>
    6. </td>
    7. <td width="8" height="12">
    8. <a href="javascript:toggle(15, 'Stills');" title="stills" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('Image47','','http://www.dschungelfilm.de/bilder/testg.jpg',1)">
    9. <img name="Image47" border="0" src="http://www.dschungelfilm.de/bilder/tests.jpg" width="4" height="12">
    10. </a>
    11. </td>
    12. <td width="8" height="12">
    13. <a href="#" onClick="MM_openBrWindow('http://www.dschungelfilm.de/filme/ich_bin.html','','width=325,height=290')" title="film" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('Image46','','http://www.dschungelfilm.de/bilder/testg.jpg',1)">
    14. <img name="Image46" border="0" src="http://www.dschungelfilm.de/bilder/tests.jpg" width="4" height="12">
    15. </a>
    16. </td>
    Alles anzeigen


    Wenn Du zusätzliche Divs brauchst, musst Du nur das "types" Array in der Funktion anpassen...

    Jetzt ist pro Film immer nur das gerade ausgewählte Div sichtbar, die Divs anderer Filme bleiben unangetastet.

    Sollen die Divs aller anderen Filme auch geschlossen werden, dann müsste man einen anderen Ansatz verfolgen:

    Ich gehe jetzt mal davon aus, das die CSS-Klasse "container" nur von den ein/auszublendenden Divs verwendet wird, falls nicht, musst Du deine HTML-Code entsprechen ab ändern!

    Quellcode

    1. function toggle(name)
    2. {
    3. for (var i = 0; i < document.getElementsByTagName('div').length; i++) {
    4. if(document.getElementsByTagName('div')[i].className == 'container') {
    5. document.getElementsByTagName('div')[i].display = 'none';
    6. }
    7. }
    8. var ans = document.getElementById(name);
    9. if (ans) {
    10. if (ans.style.display != 'block') {
    11. ans.style.display = 'block';
    12. } else {
    13. ans.style.display = 'none';
    14. }
    15. }
    16. }
    Alles anzeigen


    Den HTML Teil kannst Du dann lassen wie er ist, nur die fehlenden "</td>" Tags solltest Du noch nachtragen, die könnten auch für die Darstellungsfehler in diversen Browsern verantwortlich sein.

    70abc

    PS: Der Code wurde von mir nicht getestet, sondern nur so zusammengebastelt. Könnte also durchaus sein, das noch kleine Fehler drin sind...
    We raise hopes, here ... until they're old enough to fend for themselves.
    - Mike Callahan