Okay, ich versuche nun seit über 2 Stunden eine Javascript-Funktion in Shopware einzubinden, welche immer dann ausgelöst werden soll, wenn man im Frontend eine Variante ausgewählt hat… Es grenzt an eine Unmöglichkeit, dass das so ein endloses und erfolgloses Gefummel ist…
Hier eine Vereinfachung des Gebildes:
{extends file="parent:frontend/detail/index.tpl"}
{block name="frontend_index_header_javascript_jquery" append}
function MyFunction () { DoStuffHere };
window.addEventListener('load', onloadEvent, false);
function onloadEvent(){
$( document ).ready(function() {
MyFunction();
});
}
{/block}
Bis dahin funktioniert es noch, wählt man dann jedoch eine Variante aus, so wird ein großteil der Seite neu geladen und die Javascript-Änderungen sind futsch…
Im Folgenden die Bemühungen der letzten 2 Stunden:
// Funktioniert nicht
window.addEventListener('load', onloadEvent, false);
function onloadEvent(){
$( document ).ready(function() {
MyFunction();
$.when(swAjaxVariant()).done(MyFunction());
});
}
// Funktioniert nicht
window.addEventListener('load', onloadEvent, false);
function onloadEvent(){
$( document ).ready(function() {
MyFunction();
$.when(swAjaxVariant()).then(MyFunction());
});
}
// Funktioniert nicht
window.addEventListener('load', onloadEvent, false);
function onloadEvent(){
$( document ).ready(function() {
MyFunction();
$('.product--configurator select').each(function(i,l) {
$(l).addEventListener("onfocus", MyFunction, false);
});
});
}
// Funktioniert nicht
window.addEventListener('load', onloadEvent, false);
function onloadEvent(){
$( document ).ready(function() {
MyFunction();
$.subscribe('plugin/swAjaxVariant/onChange', function() {
MyFunction();
});
});
}
Daraufhin hatte ich versucht die Datei “jquery.ajax-variant.js” im eigenen Theme anzupassen und mit einer Callback-Funktion zu versehen, das nimmt er aber auch nicht an…
So langsam gehen mir die Ideen aus.
… Okay, es hat nun doch noch funktioniert…
$.subscribe('plugin/swAjaxVariant/onRequestData', function() {
MyFunction();
});