Autor |
Nachricht |
choise
Threadersteller
Dabei seit: 01.02.2007
Ort: Würzburg
Alter: 35
Geschlecht:
|
Verfasst Do 04.12.2008 15:52
Titel mootools - fx.slide und Request.Html |
|
|
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"> </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
|
|
|
|
|
Smooth-Graphics
Dabei seit: 22.05.2006
Ort: -
Alter: -
Geschlecht:
|
Verfasst Do 04.12.2008 15:57
Titel
|
|
|
Aber kannst du nicht einfach die myHorizontalSlide.slideOut(); schon im Originaldokument laden? Dann müsste es doch gehen... hab dich richtig verstanden?
|
|
|
|
|
Anzeige
|
|
|
m
Moderator
Dabei seit: 18.11.2004
Ort: -
Alter: -
Geschlecht:
|
Verfasst Do 04.12.2008 17:02
Titel
|
|
|
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.
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
|
|
|
|
|
choise
Threadersteller
Dabei seit: 01.02.2007
Ort: Würzburg
Alter: 35
Geschlecht:
|
Verfasst Do 04.12.2008 17:23
Titel
|
|
|
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.
|
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.
|
dachte ich mir auch, aber entweder setze ich die syntax des aufrufes falsch oder es geht auch nicht.
hmpf muss ich mir mal anschaun
Zuletzt bearbeitet von m am Do 04.12.2008 17:46, insgesamt 1-mal bearbeitet
|
|
|
|
|
m
Moderator
Dabei seit: 18.11.2004
Ort: -
Alter: -
Geschlecht:
|
Verfasst Do 04.12.2008 18:35
Titel
|
|
|
Ah nein, var myHorizontalSlide ist nicht verfügbar...
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
|
|
|
|
|
choise
Threadersteller
Dabei seit: 01.02.2007
Ort: Würzburg
Alter: 35
Geschlecht:
|
Verfasst Do 04.12.2008 18:52
Titel
|
|
|
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');
|
|
|
|
|
|
m
Moderator
Dabei seit: 18.11.2004
Ort: -
Alter: -
Geschlecht:
|
Verfasst Do 04.12.2008 18:54
Titel
|
|
|
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
|
|
|
|
|
bacon
Dabei seit: 24.10.2007
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Do 04.12.2008 19:55
Titel
|
|
|
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.
|
|
|
|
|
|
|
|
Ä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
|
|