2012-05-17 10 views
6

Aquí está mi script:¿Incremento de Javascript en más de 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(); 
    } 

Lo que necesito es aumentar la "v" (cart_item.quantity) por más de uno. Aquí, está usando "v ++" ... pero solo está aumentando en 1. ¿Cómo puedo cambiar esto para hacerlo aumentar en 4 cada vez que hago clic en el ícono más?

me trataron

v++ +4 

Pero no está funcionando.

Gracias!

+1

'v + = 4' ...? Y algo de relleno ... –

+4

Si no sabes cómo agregar 4 a un número, te sugiero que corras a través de un tutorial básico de programación. –

Respuesta

15

Utilice un operador de asignación compuesta:

v += 4; 
+0

¡Gracias! funcionó. – larin555

+1

No es equivalente: 'v + = 4' solo evalúa la expresión una vez, lo que es bueno cuando es una expresión larga o tiene efectos secundarios. – jnylen

+0

@jnylen Gracias, ofc tienes razón. – helpermethod

0

Prueba esto:

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

Para aumentar v por n: v + = n

14

Uso variable += value; a incrementar en más de uno:

v += 4; 

Funciona con algún otro operadores también:

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

Para referencia: Ver [Asignación de suma] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Assignment_Operators#Addition_assignment) ('+ =') y [Asignación de resta] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Assignment_Operators#Subtraction_assignment) ('- =') operadores. – showdev

+0

|| = y && = no parecen existir en JavaScript. | = y & = realizan operadores de asignación bit a bit que son igual de buenos si no estás haciendo comparaciones directas === con booleanos reales. –

+0

Tienes razón @Csit - Debo haber estado pensando en un idioma diferente cuando escribí esto. – jnylen

Cuestiones relacionadas