2012-05-17 23 views
6

Oto mój skrypt:Wzrost Javascript o więcej niż 1?

//event handler for item quantity in shopping cart 
    function itemQuantityHandler(p, a) { 
     //get current quantity from cart 
     var filter = /(\w+)::(\w+)/.exec(p.id); 
     var cart_item = cart[filter[1]][filter[2]]; 
     var v = cart_item.quantity; 


     //add one 
     if (a.indexOf('add') != -1) { 
      if(v < settings.productBuyLimit) v++; 
     } 
     //substract one 
     if (a.indexOf('subtract') != -1) { 
      if (v > 1) v--; 

     } 
     //update quantity in shopping cart 
     $(p).find('.item-quantity').text(v); 
     //save new quantity to cart 
     cart_item.quantity = v; 
     //update price for item 
     $(p).find('.item-price').text((cart_item.price*v).toFixed(settings.numberPrecision)); 
     //update total counters 
     countCartTotal(); 
    } 

Co potrzebne jest zwiększenie "v" (cart_item.quantity) o więcej niż jeden. Tutaj używa się "v ++" ... ale zwiększa się tylko o 1. Jak mogę to zmienić, aby zwiększyć o 4 za każdym razem, gdy kliknę ikonę plusa?

Próbowałem

v++ +4 

Ale to nie działa.

Dziękujemy!

+1

'V + = 4' ...? I trochę wyściółki ... –

+4

Jeśli nie wiesz, jak dodać 4 do numeru, naprawdę proponuję przeglądanie podstawowego samouczka do programowania. –

Odpowiedz

15

pomocą operatora przypisania związek:

v += 4; 
+0

Dziękujemy! zadziałało. – larin555

+1

Nie jest to równoważne: 'v + = 4' ocenia tylko wyrażenie raz, co jest dobre, gdy jest długim wyrażeniem lub ma efekty uboczne. – jnylen

+0

@jnylen Dzięki, ofc masz rację. – helpermethod

0

Spróbuj tego:

//event handler for item quantity in shopping cart 
    function itemQuantityHandler(p, a) { 
     //get current quantity from cart 
     var filter = /(\w+)::(\w+)/.exec(p.id); 
     var cart_item = cart[filter[1]][filter[2]]; 
     var v = cart_item.quantity; 


     //add four 
     if (a.indexOf('add') != -1) { 
      if(v < settings.productBuyLimit) v += 4; 
     } 
     //substract one 
     if (a.indexOf('subtract') != -1) { 
      if (v > 1) v--; 

     } 
     //update quantity in shopping cart 
     $(p).find('.item-quantity').text(v); 
     //save new quantity to cart 
     cart_item.quantity = v; 
     //update price for item 
     $(p).find('.item-price').text((cart_item.price*v).toFixed(settings.numberPrecision)); 
     //update total counters 
     countCartTotal(); 
    } 
3

Aby zwiększyć v przez n: v + = n

14

Zastosowanie variable += value; aby zwiększyć o więcej niż jeden:

v += 4; 

Współpracuje z innego operatorzy też:

v -= 4; 
v *= 4; 
v /= 4; 
v %= 4; 
v <<= 1; 
v >>= 4; 
+0

Dla odniesienia: Zobacz [Dodawanie przydziału] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Assignment_Operators#Addition_assignment) ('+ =') i [Przypisanie odejmowania] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Assignment_Operators#Subtraction_assignment) ('- =') operators. – showdev

+0

|| = i && = nie wydają się istnieć w JavaScript. | = and & = wykonuje operatory przypisania bitowego, które są równie dobre, jeśli nie robisz bezpośrednich porównań === do rzeczywistych wartości logicznych. –

+0

Masz rację. @Csit - Musiałem myśleć w innym języku, kiedy to pisałem. – jnylen

Powiązane problemy