mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Fr 19.04.2024 16:30 Benutzername: Passwort: Auto-Login

Thema: mootools - fx.slide und Request.Html vom 04.12.2008


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> mootools - fx.slide und Request.Html
Seite: 1, 2  Weiter
Autor Nachricht
choise
Threadersteller

Dabei seit: 01.02.2007
Ort: Würzburg
Alter: 35
Geschlecht: Männlich
Verfasst Do 04.12.2008 15:52
Titel

mootools - fx.slide und Request.Html

Antworten mit Zitat Zum Seitenanfang

Hey Leute,

ich hab n Problem, hab eigentlich nich so viel Peil von Javascript vorallem nicht vom Mootools Framework.
Folgendes Problem.

Ich habe eine DIV, die bei klick auf einem Link ausfährt:
Code:

<a href="#" class="search" id="h_toggle_s" title="Suche">&nbsp;</a>
<div id="horizontal_slides">
         
</div>


Code:

   var myHorizontalSlide = new Fx.Slide('horizontal_slides', {mode: 'horizontal',});

   $('h_toggle_s').addEvent('click', function(e){
      e.stop();
      if(status[myHorizontalSlide.open] == 'open'){
      
         myHorizontalSlide.slideOut().chain(function(){
             myHorizontalSlide.slideIn()
      });
      } else {
         e.stop();
         myHorizontalSlide.toggle();
      }
   });


sowei so gut, wenn offen, dann schliessen und wieder öffnen, ansonsten öffnen.
Des weiteren wird bei diesem klick auf den link mit der ID "h_toggle_s" eine Seite per Request.HTML eingeladen:

Code:

   var req2 = new Request.HTML({url:'inc/query.php?page=suche',
      onSuccess: function(html) {
         //   Lösche aktuellen Inhalt
         $('horizontal_slides').set('text', '');
         // Neues DOM in das DIV setzten
         $('horizontal_slides').adopt(html);
      },
      //   Falls fehlgeschlagen => Fehlertext
      onFailure: function() {
         $('result').set('text', 'Die Anfrage wurde abgebrochen');
      }
   });

   $('h_toggle_s').addEvent('click', function() {
      req2.send();
   });


Nun soll DIESE eingeladene Datei "'inc/query.php?page=suche" eine Link enthalten,
der die bereits ausgefahrene DIV wieder einfahren lassen kann.
Allerdings will das nicht so klappen, denn wenn ich einfach einen Link setze und zb

Code:

   $('h_slideout').addEvent('click', function(e){
      e.stop();
      myHorizontalSlide.slideOut();
   });


diesen Event Handler anhänge, wird es nicht klappen, da die ID "h_slideout" ja nicht am anfang
deklariert ist, sondern erst nachgeladen wird.

Ich dachte mir ich könnte diese "myHorizontalSlide.slideOut()" einfach mit einem onclick Handler ausführen,
klappt allerdings auch nicht.

Versteht ihr mein Problem ?

lg
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Smooth-Graphics

Dabei seit: 22.05.2006
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Do 04.12.2008 15:57
Titel

Antworten mit Zitat Zum Seitenanfang

Aber kannst du nicht einfach die myHorizontalSlide.slideOut(); schon im Originaldokument laden? Dann müsste es doch gehen... hab dich richtig verstanden?
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Anzeige
Anzeige
m
Moderator

Dabei seit: 18.11.2004
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Do 04.12.2008 17:02
Titel

Antworten mit Zitat Zum Seitenanfang

Hey. Kannst du gerade mal verlinken? Ich bin nicht sicher ob ich dich korrekt verstehe.

Aber, du lädst dass Elemnt nach, in dem Moment wo du das Script ausführst ist das Element
also noch nicht verfügbar. Vorausgesetzt ich habe dich korrekt verstanden.

Dann hast du vers. Möglichkeiten. Einfachste, du nutzt einen inline event handler, oder aber
du lädst das Script nach dem Request nach bzw. erst dann. Lächel

Edit: Und, wenn du den Inhalt eines Elementes updaten willst, kannst du auch

http://docu.mootools.net/docs/Request/Request.HTML#Element-Properties:load

nutzen.


Zuletzt bearbeitet von m am Do 04.12.2008 17:09, insgesamt 2-mal bearbeitet
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
choise
Threadersteller

Dabei seit: 01.02.2007
Ort: Würzburg
Alter: 35
Geschlecht: Männlich
Verfasst Do 04.12.2008 17:23
Titel

Antworten mit Zitat Zum Seitenanfang

m hat geschrieben:
Hey. Kannst du gerade mal verlinken? Ich bin nicht sicher ob ich dich korrekt verstehe.

Aber, du lädst dass Elemnt nach, in dem Moment wo du das Script ausführst ist das Element
also noch nicht verfügbar. Vorausgesetzt ich habe dich korrekt verstanden.

* Ja, ja, ja... * genau, deswegen geht der normale weg nicht.

m hat geschrieben:

Dann hast du vers. Möglichkeiten. Einfachste, du nutzt einen inline event handler, oder aber
du lädst das Script nach dem Request nach bzw. erst dann. Lächel

dachte ich mir auch, aber entweder setze ich die syntax des aufrufes falsch oder es geht auch nicht.

m hat geschrieben:

Edit: Und, wenn du den Inhalt eines Elementes updaten willst, kannst du auch
http://docu.mootools.net/docs/Request/Request.HTML#Element-Properties:load
nutzen.

hmpf muss ich mir mal anschaun


Zuletzt bearbeitet von m am Do 04.12.2008 17:46, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
m
Moderator

Dabei seit: 18.11.2004
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Do 04.12.2008 18:35
Titel

Antworten mit Zitat Zum Seitenanfang

Ah nein, var myHorizontalSlide ist nicht verfügbar... *zwinker*

Die musst du außerhalb des domReady Events deklarieren.

Oder:

Code:
      function getSlide() {
         var myHorizontalSlide;
         myHorizontalSlide = new Fx.Slide('container');
         myHorizontalSlide.hide();         
         var el = $('container');
         el.set('load', {method: 'get', onComplete: function() { myHorizontalSlide.slideIn(); $('slideout').onclick = function() { myHorizontalSlide.slideOut() } } });
         el.load('test.html');
      }
      
      window.addEvent('domready', function() {         
         getSlide();      
      });


der nachgeladene Inhalt:

Code:
<a href="#" id="slideout">zurück</a>


An getSlide() könntest du einen Parameter übergeben um zu entscheiden welches Dokument geladen werden soll.
Wenn sich in dem nachzuladenen Dokument dann eine Element mit der id slideout befindet kannst du darüber Fx.Slide
Methode slideOut per klick aufrufen.
aufrufen...


Zuletzt bearbeitet von m am Do 04.12.2008 18:53, insgesamt 6-mal bearbeitet
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
choise
Threadersteller

Dabei seit: 01.02.2007
Ort: Würzburg
Alter: 35
Geschlecht: Männlich
Verfasst Do 04.12.2008 18:52
Titel

Antworten mit Zitat Zum Seitenanfang

werd ich gleich mal ausprobieren.
was ist der unterschied zwischen test.html und load.htm ?

mit el.load wird der inhalt des containers geladen , was bedeutet dann :

Code:

$('container').load('load.htm');
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
m
Moderator

Dabei seit: 18.11.2004
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Do 04.12.2008 18:54
Titel

Antworten mit Zitat Zum Seitenanfang

choise hat geschrieben:
werd ich gleich mal ausprobieren.
was ist der unterschied zwischen test.html und load.htm ?

mit el.load wird der inhalt des containers geladen , was bedeutet dann :

Code:

$('container').load('load.htm');


Kannste streichen, keine Ahnung wie das da reingekommen ist *ha ha*
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
bacon

Dabei seit: 24.10.2007
Ort: -
Alter: -
Geschlecht: -
Verfasst Do 04.12.2008 19:55
Titel

Antworten mit Zitat Zum Seitenanfang

Wir haben eine (ich will nicht sagen "hervorragende" - schließlich hab ich sie geschrieben und Eigenlob stinkt bekanntlich) FAQ zum Thema Javascript, in der auch Debugging-Tools behandelt werden.
  View user's profile Private Nachricht senden
 
Ähnliche Themen mehrere Textanfänge aufsliden mit Mootools Fx.Slide
Ajax Request - Reload?
Asynchroner Request mit jQuery im Safari
HTTP-Request manipulieren / Brauche Hilfe
mootools & CO
mootools vs ie6
Neues Thema eröffnen   Neue Antwort erstellen Seite: 1, 2  Weiter
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.