2012-05-17 7 views
6

Ecco il mio script:Incremento Javascript di più di 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(); 
    } 

cosa ho bisogno è di aumentare la "v" (cart_item.quantity) da più di una. Qui, sta usando "v ++" ... ma aumenta solo di 1. Come posso cambiarlo per farlo aumentare di 4 ogni volta che clicco sull'icona?

ho cercato

v++ +4 

Ma non funziona.

Grazie!

+1

'v + = 4' ...? E qualche padding ... –

+4

Se non sai come aggiungere 4 a un numero, ti suggerirei di passare attraverso un tutorial di programmazione di base. –

risposta

15

Utilizzare un operatore di assegnazione composto:

v += 4; 
+0

Grazie! ha funzionato. – larin555

+1

Non equivalente: 'v + = 4' valuta solo l'espressione una volta, il che è buono quando è un'espressione lunga o ha effetti collaterali. – jnylen

+0

@jnylen Grazie, ofc hai ragione. – helpermethod

0

Prova questo:

//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

Per aumentare v dal n: v + = n

14

Usa variable += value; di incrementare di oltre un:

v += 4; 

Funziona con qualche altro operatori anche:

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

Per riferimento: vedere [Assegnazione aggiunta] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Assignment_Operators#Addition_assignment) ('+ =') e [Assegnazione sottrazione] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Assignment_Operators#Subtraction_assignment) ('- =') operatori. – showdev

+0

|| = e && = non sembrano esistere in JavaScript. | = e & = eseguono operatori di assegnazione bit a bit che sono altrettanto validi se non si stanno facendo confronti diretti === con i booleani effettivi. –

+0

Hai ragione @Csit - Devo aver pensato in una lingua diversa quando ho scritto questo. – jnylen