2016-07-06 17 views
1

Es ist mein erstes Mal, dass ich Woocommerce und ich habe einige Probleme auf meiner Warenkorb-Seite, wenn ich mehr als 1 Produkt hinzugefügt und erhöhen oder verringern jedes Produkt erhöht es Menge von allen Produkte.woocommerce Warenkorb funktioniert nicht richtig mit jquery

Zum Beispiel: Ich habe 7

mit Menge b Produkt eine Menge mit 2 und Produkt haben, wenn ich Produkt b bis 8 dann Produkt eine Menge wird auch erhöhte sich auf 8

-Code erhöhen:

<script> 
jQuery('.plus').on('click',function(e){ 
var val = parseInt(jQuery('input[title="Qty"]').val()); 

jQuery('input[title="Qty"]').val(val+1); 
}); 

jQuery('.minus').on('click',function(e){ 
var val = parseInt(jQuery('input[title="Qty"]').val()); 
if(val !== 0){ 

jQuery('input[title="Qty"]').val(val-1); 
} }); 
</script> 

und noch etwas Preis bleibt gleich, auch wenn ich Erhöhung Produkt hinzufügen oder verringern

HTML-Ausgabe: goo.gl/h3w4IQ

Actual Warenkorb Seite: goo.gl/9ynStK

Bitte lassen Sie mich wissen, warum diese jQuery-Code nicht funktioniert und was auch als pro Produktmenge zu erhöhen/verringern Preis zu tun.

Antwort

0

In Ihrem jQuery-Code haben Sie alle DOMs input ausgewählt, während Sie Plus oder Minus machen. Sie benötigten tatsächlich einen spezifischen Selektor, um nur den Wert der benachbarten Eingabe zu ändern. Bitte ersetzen Sie Ihren Code durch diesen. Ich habe es getestet und es funktioniert.

jQuery(document).ready(function($) { 
    // Attach event on plus 
    // We delegate the event to document 
    // So that even if there are 100 of plus buttons 
    // It would not slow down the page 
    $(document).on('click', '.plus', function(e) { 
     // Get the right element 
     var elem = $(this).prev('.qty'), 
     // and its value 
     val = parseInt(elem.val()); 
     // Sanitize the value 
     if (isNaN(val)) { 
      val = 0; 
     } 
     if (val < 0) { 
      val = 0; 
     } 
     // Now increase it 
     elem.val(++val).trigger('change'); 
    }); 

    // Similar appraoch for the minus button 
    $(document).on('click', '.minus', function(e) { 
     // Get the right element 
     var elem = $(this).next('.qty'), 
     val = parseInt(elem.val()); 
     // Sanitize the value 
     if (isNaN(val)) { 
      val = 0; 
     } 
     // decrease the value 
     val = val - 1; 
     // but not a negative 
     if (val < 0) { 
      val = 0; 
     } 
     // Set it 
     elem.val(val).trigger('change'); 
    }); 
}); 
+1

kühlt es funktioniert, aber nach wie vor Preis nicht steigend/fallend mit diesem –

+0

Nun, die über das, was ich anbieten kann, weil ich denke, dass es an den Server gehen muss alle Preise zu berechnen. Vielleicht kann Ihnen jemand anderes dabei helfen. Aber nach meiner Erfahrung, wenn Sie die Produktmenge im Warenkorb erhöhen, bitten Sie den Benutzer, es zu aktualisieren, oder führen Sie einen Ajax-Anruf, um es vom Server zu aktualisieren. –

+0

gut seine wirklich große Hilfe für mich danke :) BTW wissen Sie, wie man Ajax anmeldet, um Warenkorb zu aktualisieren, wenn Benutzermenge erhöhen? –

Verwandte Themen