Frank: divs-einblenden ohne aufruf von onclick

Hallo Leute,
ich würde gerne wenn man auf eine Überschrift klickt, dass dann eine Javascript-Funktion aufgerufen wird, die mir das div dazu anzeigt.

<div id="main">
   <h2 class="ueberschrift">Einstellungen</h2>
      <div class="derblock" style="display:none">
           ...
      </div>
   </h2>
</div>

Ich möchte, aber nicht die aufzurufende JS-Funktion direkt im Quellcode angeben (sie wird natürlich eingeladen über script) - also ich will kein onclick="..." oder ähnliches.

Könnt ihr mir dabei helfen, habe die funktionsweise bei Studivz bei den Werbeeinstellungen gesehen, und würde diese auch gerne für meine Seite verwenden.

Wenn jemand weiß wie das funktioniert wäre ich sehr dankbar.

Grüße Frank

PS:
Eine Angabe der entsprechenden JS-Funktion wäre mir auch schon sehr hilfreich

  1. <div id="main">
       <h2 class="ueberschrift">Einstellungen</h2>
          <div class="derblock" style="display:none">
               ...
          </div>
       </h2>
    </div>

    Ich möchte, aber nicht die aufzurufende JS-Funktion direkt im Quellcode angeben (sie wird natürlich eingeladen über script) - also ich will kein onclick="..." oder ähnliches.

    schreibe eine onload-funktion die bei allen überschriften in der id main das attribut "onclick" erst nachträglich hinzufügt

    in diesem onlick wird dann das nächste geschwisterelement (textknoten werden ignoriert) mit style umgeschalten (block/none)

    Eine Angabe der entsprechenden JS-Funktion wäre mir auch schon sehr hilfreich

    getElementByID()
    setAttributeNode()
    style

    zur info: deine seite ist konzeptionell kaputt und funktioniert ohne javascript dann allerdings nicht, da der text bereits initial ausgeblendet wird ;)

  2. Hallo Leute,
    ich würde gerne wenn man auf eine Überschrift klickt, dass dann eine Javascript-Funktion aufgerufen wird, die mir das div dazu anzeigt.

    <div id="main">
       <h2 class="ueberschrift">Einstellungen</h2>
          <div class="derblock" style="display:none">
               ...
          </div>
       </h2>
    </div>

    Hi,

    du holst dir zunächst das DIV element, mit z.B. document.getElementById.

    Und daran hängst du dann das Event per

    element.addEventListener("click", function(e)
    {
    alert("click");
    }, false);

    für IE heißt die Methode attachEvent und funktioniert etwas anders.

    Oder nimm den alten Weg über:

    element.onclick = function(e)
    {
    e = e || window.event;
    }

    Dort musst du aber auf window.event noch abfragen, um an das event objekt zu kommen, und man kann nur einen EventHandler angeben.

    Lies vielleicht auf quirksmode.org noch etwas über EventHandling.

    Gruß!

  3. Hi!

    Ich möchte, aber nicht die aufzurufende JS-Funktion direkt im Quellcode angeben (sie wird natürlich eingeladen über script) - also ich will kein onclick="..." oder ähnliches.

    Gute Idee, aber Du brauchst trotzdem den EvenHandler, den kannst Du auch im externen JS-code registrieren.
    Dazu gibst Du am bestem Deinem HTML-Element eine ID (im HTML-Code) und sprichst diese dann in der JS-Datei an.
    Hier: http://www.mediaevent.de/javascript/event_handler.html steht wie das geht (Etwas scollen!)

    Off:pp

    1. Hi!

      wie das geht (Etwas scollen!)

      Wer hat mir das 'r' geklaut?

      Off:pp

      1. Hallo.

        Wer hat mir das 'r' geklaut?

        rat mal.
        MfG, at

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

          Wer hat mir das 'r' geklaut?

          rat mal.
          MfG, at

          Du willst wahrscheinlich schon lange deinen Nutzernamen auf „rat“ oder „art“ erweitern und hast nur auf eine passende Gelegenheit gelauert.

          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.

            Du willst wahrscheinlich schon lange deinen Nutzernamen auf „rat“ oder „art“ erweitern und hast nur auf eine passende Gelegenheit gelauert.

            HarHar!
            MfG, at