2016-05-04 4 views
0

angewendet Ich habe ein einfaches Modul erstellt, das ein kleines Formular lädt, wenn der Benutzer ein Produkt in Prestashop betrachtet.Javascript wird nicht vollständig auf der Produktseite in Prestashop

Es lädt ein JS-Skript, wenn der Benutzer ein Produkt ansieht.

Das Skript wird geladen, aber viele der Funktionen funktionieren nicht ordnungsgemäß. Meine Selektoren sind richtig und das Skript funktioniert in einer Testumgebung und nicht in einer anderen, so dass ich ein wenig verloren bin, oder vielleicht vermisse ich etwas Einfaches.

Zum Beispiel - dies wird ausgeführt, wenn die Seite geladen wird (dieser Teil des JS-Skript ist von meinem Modul geladen):

//disable AddToCart Button unless criteria are met 
function modifyAddToCart(){ 
    if ($('#customer-confirmation-check').prop('checked')) { 
     alert ('customer confirm check'); 
    $('#add-to-cart-btn').removeClass("toBeCustomized"); 
    $('#customization-required').text(""); 
    $('#add-to-cart-btn span').text("Add To Cart"); 
    $("html, body").animate({ scrollTop: $('#buy_block').offset().top }, 1000); 
    } else { 
     alert ('should be toBeCustomized'); 
     console.log( $('#add-to-cart-btn')); 
    $('#add-to-cart-btn').addClass("toBeCustomized"); 
    $('#add-to-cart-btn span').text("Customize This Item"); 
    $('#customization-required').text("You must customize this product before it can be added to your cart!"); 
    } 
} 

Die Warnung wird gekickt (dass das Kontrollkästchen wurde nicht geprüft) , protokolliert die Konsole den Button entsprechend - aber keines der anderen Dinge passiert. Die Klasse wird nicht hinzugefügt, der Text wird nicht geändert. Wenn ich es in Firebug ansehe - ich sehe auch nicht, dass die onClick-Ereignisse damit verbunden sind.

Gibt es eine Art System-JS-Skript, das verhindert, dass ein Modul-JS in bestimmten Situationen angewendet wird?

Versuchen herauszufinden, warum es in einer Situation funktioniert, aber nicht in einer anderen.

Antwort

0

Es stellte sich heraus, dass jemand in einer Umgebung eine Option aktiviert hat, um das JS unten auf der Seite zu laden (was der bessere Weg ist).

Das machte den Unterschied.

Erweiterte Parameter -> Leistung -> Javascript Ende verschieben

Verwandte Themen