Neu Reload der Seite bei Variationsauswahl - Javascript lädt nicht

anonymous

Aktives Mitglied
24. Januar 2019
38
5
Hi zusammen,

wir haben folgendes Problem:

Wenn man im Shop 5 auf der Artikelseite eine Variation auswählt, so findet ein Prozess statt, der dafür sorgt dass nicht die gesamte Seite neu geladen werden muss.
Wir haben einen Slider erstellt, der über einen Button eine Größentabelle anzeigt. Wählt man jetzt eine Variation, so wird das in der custom.js hinterlegte Javascript nicht mehr geladen. Ohne Auswahl der Variation funktioniert es einwandfrei. Erst nach der Variationswahl verliert der Button jegliche Funktion.

Kann uns jemand sagen was bei der Auswahl der Variation passiert?

Haben es schon mit document.ready, document.onload und document.onchange probiert, aber ohne Erfolg.

Der Shop befindet sich noch im Aufbau, welshalb wir keinen Link bereitstellen können. Wir würden uns über Denkanstöße freuen.

Vielen Dank für eure Hilfe und beste Grüße
 

MHillmann

Moderator
Mitarbeiter
11. Oktober 2018
1.376
547
Hallo @anonymous

ungesehen ist das immer etwas schwierig. Hier aber ein Denkanstoß: bei Varkombis wird nach Variationsauswahl die ganze div mit der id="result-wrapper" neu geschrieben. Danach ist eventuell das click event für den Button weg. Also müsste das eventuell nochmal neu initialisert werden.

Viele Grüße
Michael
 
  • Gefällt mir
Reaktionen: anonymous

anonymous

Aktives Mitglied
24. Januar 2019
38
5
Hallo @anonymous

ungesehen ist das immer etwas schwierig. Hier aber ein Denkanstoß: bei Varkombis wird nach Variationsauswahl die ganze div mit der id="result-wrapper" neu geschrieben. Danach ist eventuell das click event für den Button weg. Also müsste das eventuell nochmal neu initialisert werden.

Viele Grüße
Michael

Danke! Das war die Lösung, die funktioniert. Für alle die das gleiche Problem haben:

Wir haben es in unserem Custom-Template in der jtl.evo.js eingebunden. Dort findet man diverse Funktionen wie z.B. initPaginationEvents. Weiter unten unter 'register' wird das Ganze dann initialisiert.

Als Beispiel:
Code:
initSizechart: function() {
    $('.sizechart_link').on('click', function () {
        $('.sizechart_link a').css('color','blue');
    });
},

Ensprechend eurem Code als neue Funktion hinzufügen und dann unten bei register initialisieren:

Code:
this.initSizechart();

Danke an @MHillmann für den Lösungsansatz!
 

Ähnliche Themen