kein Seitenrefresh nur Node laden
Eingetragen von Dvdcmb (51)
am 07.09.2011 - 10:01 Uhr in
am 07.09.2011 - 10:01 Uhr in
Hallo gibt es eine Möglichkeit nur die Node einzuladen, ohne das die ganze seite refresht wird? da ich im header eine Slideshow habe, die weiterlaufen soll, egal auf wann man eine Node läd. Ausser bei der Sprachwahl, da gehts ja nicht anders.
Momentan ist es so, Die Slideshow fängt immer wieder von vorne an sobald ich irgendeine Seite im Menü wähle.
ich wäre auch damit zufrieden, wenn der Block nicht neu geladen wird da er auf jeder seite angezeigt wird.
MfG
- Anmelden oder Registrieren um Kommentare zu schreiben
Mit ein wenig Javascript bzw.
am 07.09.2011 - 10:15 Uhr
Mit ein wenig Javascript bzw. jQuery kannst du nur bestimmte Teile einer Seite neuladen - d.h. nodes laden etc..
Wir nutzen dies auch auf unserer Referenzen-Webseite (Blogbeitrag zum Thema):
http://www.hopper-intermedia.de/webdesign-referenzen
Die "vor" bzw. "zurück" Buttons laden mithilfe von jQuery .load() die entsprechende Node in den Inhaltsbereich.
SteffenR
Hab mir mal deinen
am 07.09.2011 - 12:33 Uhr
Hab mir mal deinen Blogeintrag angesehen. Ich muss sagen, ich steig da nicht wirklich durch. habs mal probiert, aber meine seite ist weiß geblieben...
Ich habe die Slideshow per js eingebunden (jquery cycle), das hab hinbekommen. aber sobald ich einen menülink anklicke fängt die slideshow von vorne an, und das soll nicht sein.
Dvdcmb schrieb Hab mir mal
am 07.09.2011 - 13:44 Uhr
Hab mir mal deinen Blogeintrag angesehen. Ich muss sagen, ich steig da nicht wirklich durch. habs mal probiert, aber meine seite ist weiß geblieben...
Ich habe die Slideshow per js eingebunden (jquery cycle), das hab hinbekommen. aber sobald ich einen menülink anklicke fängt die slideshow von vorne an, und das soll nicht sein.
Wie hast du denn dein Javascript aufgebaut, welches dir die Seiten in deinen Hauptinhaltsbereich laden soll ?
Die Slideshow weiterlaufen zu lassen, wo sie beendet wurde, ist auch nicht so einfach lösbar - hier müsste man dann schon direkt in den Code "rein" und bspw. Cookies setzen oder bei Klick auf Menupunkte den Status zwischenspeichern.
Da ist die Variante Klicks auf die Menupunkte abzufangen und hier dann via .load() Inhalte nachzuladen deutlich einfacher.
$('#menu a').click(function() {
var link = $(this).attr('href');
$('#main_content').load(link+' #main_content', function() {
alert('seite geladen');
});
return false;
});
Den Code oben müsstest du natürlich deiner Seite anpassen - ist nur zum Verständnis gedacht.
SteffenR
Einbau des js: habe es in den
am 07.09.2011 - 14:39 Uhr
Einbau des js: habe es in den ordner js gepackt, und in der meinprojekt.info hinzugefügt. in der page.tpl.php habe ich dann eine div slides gemacht, mit das js angesprochen wird. (funktioniert ja ohne probleme, nur wie gesagt, wenn möglich nur nodes nachladen ohne head oder foot neu laden zu müssen. damit das bild weiterslidet.
den Code den du geschrieben hast mit .load(), kommt der in die node.module? Wenn ja wohin genau und was müsste ich da anpassen? sry, bin nicht wirklich so erfahren.
Ich habe mir mal ein Example
am 26.09.2011 - 12:52 Uhr
Teils funktioniert alles bei mir. habe jetzt folgendes Script erstellt:
setInterval(function (){
jQuery('.nice-menu a').unbind('click');
jQuery('.nice-menu a').click(function (){
var link = jQuery(this).attr('href');
jQuery('.region-content').load(link+' .region-content');
jQuery('.tabs').load(link+' .tabs');
jQuery('.region-highlighted').load(link+' .region-highlighted');
jQuery('.region-footer').load(link+' .region-footer');
return false;
});
}, 500);
Das problem ist, dass alle scripts die innerhalb der node sind nicht mehr ausgeführt werden. Sobald nämlich Content per AJAX geholt wird, fungieren die "fadeIn()" Effekte wie "show()".
Aber wie löse ich das Problem?
MfG