tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
8
ZUGRIFFE
17326
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
DIESES THEMA IST
GESCHLOSSEN
  1. #1
    derheine derheine ist offline Rookie
    Registriert seit
    Oct 2006
    Beiträge
    8
    Halli hallo zusammen,

    ich habe ein kleines Problem! Und zwar möchte ich via Javascript Inhalt ein- und ausblenden! Dazu habe ich auch schon eine Funktion gefunden. Aber jetzt habe ich das Problem, das ich mehrere Inhalte an der gleichen Stelle aber nicht zur gleichen Zeit einblenden möchte

    Also z.B.:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    <div id="testlinkleiste">
    <a href="javascript:void(0)" onclick="return test('text1')">text1</a> <a href="javascript:void(0)" onclick="return test('text2')">text2</a>
    </div>
     
    <div id="text1">
    das hier ist ein text.. irgendwas bla bla bla und zwar die nummer <strong>1</strong>
    </div>
     
    <div id="text2">
    das hier ist ein text.. irgendwas bla bla bla und zwar die nummer <strong>2</strong>
    </div>

    Das Ganze soll erstmal überhaupt nicht angezeigt werden.. also Style dafür wäre dann
    Code :
    1
    2
    3
    4
    5
    6
    7
    
    #text1 {
      display: none;
    }
     
    #text2 {
      display: none;
    }

    Jetzt möchte ich das so haben, das wenn man den Text1-Link anklickt, das Text2-Feld falls es sichtbar ist also display: block; ausgeblendet wird und dafür dann das Text1-Feld eingeblendet wird. Der einfach code der einfach das Feld sichtbar macht wäre folgender:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    function test(a) {
      var e = document.getElementById(a);
      if (!e) return true;
      if (e.style.display == "none") {
        e.style.display = "block";
      } else {
        e.style.display = "none";
      }
      return true;
    }

    Aber wie gesagt, der blendet halt nur die Felder ein, untereinander in der Reihenfolge in der man auf den Link klickt.

    Habt ihr da irgendeine Idee? Ich verzweifel so langsam.. Javascript kann ich leider so gar nicht und mit meiner Logik (soweit vorhanden) komm ich auch nicht mehr weiter


    Im Voraus vielen Dank

    Liebe Grüße,
    Jens
     

  2. #2
    Maik Tutorials.de Gastzugang
    Probier's mal hiermit:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    
    var box = new Array();
    box[0] = 'text1';
    box[1] = 'text2';
    // box[2] = 'text3';
    // usw.
     
    function show(id)
    {
            if(document.getElementById(id).style.display=="none")
            {
                    for(i=0;i<box.length;i++)
                    {
                            document.getElementById(box[i]).style.display="none";
                    }
     
                    document.getElementById(id).style.display="block";
            }
            else
            {
                    document.getElementById(id).style.display="none";
            }
    }
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    <div id="testlinkleiste">
    <a href="#" onclick="show('text1')">text1</a> <a href="#" onclick="show('text2')">text2</a>
    </div>
     
    <div id="text1" style="display:none;">
    das hier ist ein text 1.. irgendwas bla bla bla und zwar die nummer <strong>1</strong>
    </div>
     
    <div id="text2" style="display:none;">
    das hier ist ein text 2.. irgendwas bla bla bla und zwar die nummer <strong>2</strong>
    </div>
     

  3. #3
    derheine derheine ist offline Rookie
    Registriert seit
    Oct 2006
    Beiträge
    8
    Ja genial das geht!! Danke!


    Liebe Grüße,
    Jens
     

  4. #4
    Lord Spooner Lord Spooner ist offline Rookie
    Registriert seit
    May 2004
    Beiträge
    6
    Das hat auch mir geholfen. Danke!
     

  5. #5
    darkentik darkentik ist offline Rookie
    Registriert seit
    Jul 2008
    Ort
    Teuchern
    Beiträge
    9
    Hallo,

    also der Code an sich geht.
    Nur ich habe das Problem, dass wenn ich meine seite aufrufe und ich dann den 1.Klick auf ein menüpunkt mache, nix passiert. Denn erst bei 2.mal klicken blendet der mir mein gewünschtes DIV ein....frag mich grad was ich falsch gemacht habe...

    Also mein "Bild-Button", der das "onclick"-Ereignis hat sieht so aus:

    HTML-Code:
    <td valign="top" width="20%" height="100%">
    <a href="#" onclick="show('menue1')">
    <img src="Bilder/mbox1.gif" border="0"></a>
    </td>
    -----------------------------------------------------------------------

    die function hab ich ja von dir, nur hab ich halt nochn paar Arrays hinzugefügt:

    HTML-Code:
    // Auswahl/Selektieren der Menüpunkte
    var box = new Array();
    box[0] = 'menue1';
    box[1] = 'menue2';
    box[2] = 'menue3';
    box[3] = 'menue4';
    box[4] = 'menue5';
    
    // Fkt. zum Darstellen des Inhaltes des selektierten Menüpunktes
    function show(id)
    {
            if(document.getElementById(id).style.display=="none")
            {
                    for(i=0;i<box.length;i++)
                    {
                            document.getElementById(box[i]).style.display="none";
                    }
    
                    document.getElementById(id).style.display="block";
            }
            else
            {
                    document.getElementById(id).style.display="none";
            }
    }
    ----------------------------------------------------------------------------------------------

    So und das entsprechende DIV:

    HTML-Code:
    <div id="menue1">
    <table border="1" width="120px" cellpadding="0" cellspacing="0">
      <tr>
        <td align="center" width="120px">
          News
        </td>
      </tr>
    
      <tr>
        <td align="center" width="120px">
          Saisontabelle
        </td>
      </tr>
    
      <tr>
        <td align="center" width="120px">
          Spielplan
        </td>
      </tr>
    
      <tr>
        <td align="center" width="120px">
          Events
        </td>
      </tr>
    </table>
    </div>
    ----------------------------------------------------------------

    Wie Ihr seht soll das ne Seite für einen Fußballverein werden.
    Ich habe das Problem halt mit allen DIVs(menue1,...,menue5)....
    naja das is der betroffene Code, ich hoffe, dass ich mein Problem gut verständlich geschildert habe.

    Mit besten Grüßen

    darkentik

    //EDIT

    habe das Problem mit Hilfe des SELHTML.org Forums gelöst.

    einfach die if-Abfrage :

    HTML-Code:
    if(document.getElementById(id).style.display=="none")
    gegen diese tauschen :

    HTML-Code:
    if(document.getElementById(id).style.display!="block")
    dann geht alles schon beim ersten mal klicken.

    Also ich brauche nur folgende Zeilen in der Funktion damit es bei mir klappt:

    HTML-Code:
    // Auswahl/Selektieren der Menüpunkte
    var box = new Array();
    box[0] = 'menue1';
    box[1] = 'menue2';
    box[2] = 'menue3';
    box[3] = 'menue4';
    box[4] = 'menue5';
    
    // Fkt. zum Darstellen des Inhaltes des selektierten Menüpunktes
    function show(id)
    {
       for(i=0;i<box.length;i++)
                    {
                            document.getElementById(box[i]).style.display="none";
                    }
    
                    document.getElementById(id).style.display="block";
    }
    Na gut, bis bald!

    darkentik
     

  6. #6
    darkentik darkentik ist offline Rookie
    Registriert seit
    Jul 2008
    Ort
    Teuchern
    Beiträge
    9
    So ich bins nochmal...

    meine Menüs funktionieren ja jetzt, was aber noch bugt:

    Ich beusche meine Seite, klicke auf "Neuigkeiten" da wird das DIV für "Neuigkeiten" eingeblendet, dann klicke ich auf einen Menüpunkt im DIV z.b. "News" so dann werde ich selbstverständlich auf die Zieladresse verwiesen nämlich die News.php, JETZT verschwindet das DIV wieder....und genau das soll nicht passieren.

    Hat da jmd ne Ahnung oder vielleicht selber schonmal erlebt?
    tschü...
     

  7. #7
    Maik Tutorials.de Gastzugang
    Hi,

    dieser "Vorgang" ist eigentlich normal, wenn "News.php" aufgerufen, und somit in dieser Seite das Menü neu geladen wird.

    Also mußt du dafür Sorge tragen, dass in der aktuell geöffneten Seite der dazugehörige Menüpunkt "aktiv/geöffnet" ist.

    Übrigens wird in den HTML-Attributen, wie z.B. width, keine Einheit (px) angegeben.

    mfg Maik
     

  8. #8
    darkentik darkentik ist offline Rookie
    Registriert seit
    Jul 2008
    Ort
    Teuchern
    Beiträge
    9
    Wie stell ich das am einfachsten an, dass die aktiv geöffnet bleiben?
    d.h. ich muss in die entsprechenden php Seiten dann auch die DIV´s reinschreiben oder versteh ich das jetz falsch?
    gut dann änder ich mal die werte ohne einheit
     

  9. #9
    darkentik darkentik ist offline Rookie
    Registriert seit
    Jul 2008
    Ort
    Teuchern
    Beiträge
    9
    Hab da grad nochmal was probiert aber krieg das nicht hin.kann mir da vllt jmd nochmal nen genaueren Tipp geben?
    weiß nicht inwieweit ich das eigentlich WIE in die PHP Dateien schreiben muss und WO...tut mir leid hab mit PHP noch nicht lange am Hut.
    Wär für jede Hilfe dankbar!
    Geändert von darkentik (12.08.08 um 22:18 Uhr)
     

Ähnliche Themen

  1. With Block
    Von exiter28 im Forum .NET Windows Forms
    Antworten: 1
    Letzter Beitrag: 03.07.09, 13:19
  2. C++ Block bilden?
    Von Winner im Forum C/C++
    Antworten: 2
    Letzter Beitrag: 02.03.09, 17:35
  3. <div> block als <a> valide ?
    Von hoctar im Forum HTML & XHTML
    Antworten: 5
    Letzter Beitrag: 22.01.09, 17:26
  4. DIV-Block
    Von Lenox im Forum Javascript & Ajax
    Antworten: 4
    Letzter Beitrag: 15.05.07, 20:48
  5. Antworten: 4
    Letzter Beitrag: 26.11.03, 13:21