+ Antworten
Ergebnis 1 bis 5 von 5

Thema: [JS/AJAX] DOM mit Mootools?

  1. #1
    TP-Senior Magerquark macht alles soweit korrekt Avatar von Magerquark
    Registriert seit
    May 2004
    Beiträge
    226

    [JS/AJAX] DOM mit Mootools?

    Kennt sich jemand mit Mootools aus? - Ich habe die Library eingebunden und initialisiere im Head folgendes:
    Code:
    <script type="text/javascript">
     var zusatzinhalt, more;		
     window.onload = function() {
     fader = new fx.Opacity('more');
     zusatzinhalt = new fx.Combo('zusatzinhalt', {height: true, opacity: true, duration: 500, onComplete: function(){
      //fader.toggle();
      }
     }
    );		
    zusatzinhalt.hide();
    }
    </script>
    Im Body steht dann wiederum:
    Code:
    <p onclick="zusatzinhalt.toggle();"><span id="more">zum Zusatzinhalt</span></p>
    <div id="zusatzinhalt">
     <p>Blabla</p>
    </div>
    Das klappt soweit auch alles wunderbar. Es handelt sich hierbei um das Sliden. Ein Klick auf "zum Zusatzinhalt" und das DIV wird "reingefahren". Es bleibt dann aber "zum Zusatzinhalt" weiterhin stehen. Wie bekommt man es hin, dass zuerst sowas wie "aufklappen" und wenn es aufgeklappt ist "zuklappen" steht? Wenn es an Clientseitige Scriptssprachen geht, bin ich (leider) völlig inkompetent.
    << Meine Ankunft war zeitlich schlecht gewählt...>>

  2. #2
    TP-Special Mod steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User Avatar von steffenk
    Registriert seit
    Feb 2005
    Ort
    Haan / NRW
    Beiträge
    12.869
    ne, so geht das mit Mootools nicht, der richtige Syntax wäre

    Code:
    window.addEvent('domready', function() {
      var fader = new fx.Slide('zusatzinhalt');
      if( $('zusatzinhalt').visible) {
       fader.slideOut();
      $('more').innerHTML = 'aufklappen';
     } else {
      fader.slideIn();
      $('more').innerHTML = 'zuklappen';
     }
    }
    das onclick raus.

    Ist ohne Gewähr, zeigt aber den Ansatz.


    TYPO3 · MySQLDumper · dislabs
    ·
    manche Mühlen mahlen schneller ...
    "Ich habe Rücken"
    Horst Schlämmer


  3. #3
    TP-Senior Magerquark macht alles soweit korrekt Avatar von Magerquark
    Registriert seit
    May 2004
    Beiträge
    226
    Also: So, wie ich es angegeben habe, klappt es schon. Nur eben nicht mit dem Wechsel von "aufklappen" zu "zuklappen". Wobei das onclick mir auch schon etwas unangenehm schmeckte... Also weg damit.

    Okay, Dein Ansatz macht beim Betrachten Sinn. Ich denke, das soll anstatt des Scripts (window.onload = function) im Head eingesetzt werden? Und wie "spricht" die Funktion mit der ID "more"? Soll das eher ein Link sein?
    << Meine Ankunft war zeitlich schlecht gewählt...>>

  4. #4
    TP-Special Mod steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User Avatar von steffenk
    Registriert seit
    Feb 2005
    Ort
    Haan / NRW
    Beiträge
    12.869
    Selektoren ist das Geheimnis

    $('xyz') ist das (erweiterte) Objekt mit der id "xyz"

    also statt
    document.getElementById('xyz').innerHTML = '123';
    gehts mit
    $('xyz').innerHTML = '123';


    TYPO3 · MySQLDumper · dislabs
    ·
    manche Mühlen mahlen schneller ...
    "Ich habe Rücken"
    Horst Schlämmer


  5. #5
    TP-Senior Magerquark macht alles soweit korrekt Avatar von Magerquark
    Registriert seit
    May 2004
    Beiträge
    226
    Okay, das mit den Selektoren hatte ich mir schon aus meinem Beispiel abgeleitet. Also noch einmal zum Mitschreiben: Derzeit habe ich die Lib eingebunden und außerdem im Head noch stehen:
    Code:
    <script type="text/javascript">
    var zusatzinhalt, more;
    window.addEvent('domready', function() {
     var fader = new fx.Slide('zusatzinhalt');
     if( $('zusatzinhalt').visible) {
      fader.slideOut();
      $('more').innerHTML = 'zuklappen';
     } else {
      fader.slideIn();
      $('more').innerHTML = 'aufklappen';
      }
    }
    </script>
    Im Body steht dann:
    HTML-Code:
    <a id="more" href="#">aufklappen</a>
    <div id="zusatzinhalt">
     <p>Blabla - langer Inhalt</p>
    </div>
    Und da passiert nichts. Das DIV zusatzinhalt ist komplett ausgeklappt, der Link sagt zwar aufklappen, aber auch nur, wenn ich es, wie oben, in den Link reinschreibe. Klicken bringt nichts.

    Die Funktion besagt doch: Wenn die Seite geladen ist, wende Funktion an. Das DIV soll geslidet werden. Wenn es sichtbar ist, schreibe bei der ID 'more' "zuklappen" rein und wende die Funktion slideOut an. Entsprechend, wenn das DIV nicht sichtbar ist, also wenn es eingeklappt ist, zeige im Element mit der ID 'more' "aufklappen".

    Irgendwie... Ich weiß nicht. Schlauch? Wand?
    << Meine Ankunft war zeitlich schlecht gewählt...>>

+ Antworten

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51