ich versuche verzweifelt folgendes Problem zu lösen. Ich habe in einer Einkaufswelt Topseller-Artikel angezeigt und zeige dort ebenfalls die Buttons “Vergleichen”, “Auf die Merkliste” und “In den Warenkorb” an. Da der Einkaufswelt jedoch erst per Ajax nachgeladen wird, liegen auf diesen Buttons keine Events. Ein Klick auf die Buttons führt also dazu, dass ich auf eine weiße Seite weitergeleitet werden, auf der der Inhalt steht, der eigentlich per Ajax geladen und angezeigt werden soll. Also habe ich mir gedacht, ich müsste mich ja nur in die entsprechenden JS-Plugins einklinken und alles wäre schön. Leider scheitere ich kläglich. Hier mein Versuch:
Dabei habe ich bereits versucht das ganze mit (function ($) {})(jQuery); (also ohne window) auszuführen - leider auch ohne Erfolg. Ich habe auch versucht mich in plugin/swProductSlider/onInit zu registrieren, jedoch auch das Hilft nicht. Mit console.log konnte ich zumindest sicherstellen, dass die Hooks auch feuern, jedoch funktionieren offensichtlich meine updatePlugin bzw. addPlugin Befehle nicht (hier habe ich ebenfalls bereits beide ausprobiert, obwohl mir recht sicher bin, dass updatePlugin der richtige Befehl sein müsste).
Eingefügt habe ich diesen Code-Schnipsel übrigens in frontend/index/index.tpl im Block {block name=“frontend_index_header_javascript_jquery_lib”}
Ich hoffe mir kann hier jemand helfen. Ich komme einfach nicht weiter…
Ich muss hier leider nochmal einhaken. Ich habe des öfteren versucht das Problem zu lösen, aber es nach wie vor nicht geschafft. Hat niemand eine Idee?
Das bedeutet für mich, dass auch zukünftige Elemente dieses Click-Event bekommen. Leider ist dem aber nicht so. Ich kann doch nicht der einzige sein, der dieses Problem in der Einkaufswelt hat?!
Erstmal vielen Dank, dass du mir in diesem Thread antwortest. Leider führt auch dein genanntes Event nicht zum gewünschten Ergebnis. Ich habe nun folgenden Code in index/index.tpl im Block frontend_index_header_javascript_jquery_lib eingefügt:
Mir fällt noch was dazu ein, hatte irgendwie nur die Einkaufswelten auf dem Schirm, aber du schreibst ja, dass es in einem Slider ist:
Dir fehlt noch dieses Event:
plugin/swProductSlider/onLoadItemsSuccess
Das aus meinem vorherigen Post wird getriggert sobald die Einkaufswelt geladen ist, das hier wird bei jedem Ajax-Produkt-Slider im Shop getriggert wenn neue Einträge geladen wurden.
Das war genau der richtige Hinweis. In der product_slider.tpl habe ich nun das div-Element
um
data-compare-ajax="true"
erweitert und folgenden JS-Code eingefügt:
$.subscribe('plugin/swProductSlider/onLoadItemsSuccess', function () {
window.StateManager.updatePlugin('*[data-compare-ajax=true]', 'swProductCompareAdd');
});
Nun funktioniert es.
Vielen vielen Dank!!!