Duda eventos jQuery carrito

Tolomeo

¡Hola!

Resulta que estoy haciendo un ejercicio para clase que trata de hacer un carrito de la compra

La cuestión es que me pide:
Cuando hagas dobleclick en un item, tiene que bajar 1 punto el stock. Con el código que llevo hecho sí que me baja un punto el stock...¿problem? que me baja de todos los items.

Parte del html:

<div id="item_container">
		<div class="item" id="i1">
			<img src="img/camiseta1.jpg" alt="descripción i1"/>
			<label class="title">Camiseta 1</label>
			<label class="price">20 €</label>
			<label class="stock">Stock 10</label>
		</div>
		<div class="item" id="i2">
			<img src="img/reloj2.jpg" alt="descripción i2"/>
			<label class="title">Reloj 2</label>
			<label class="price">24 €</label>
			<label class="stock">Stock 10</label>
		</div>
		<div class="item" id="i3">
			<img src="img/camiseta3.jpg" alt="descripción i3"/>
			<label class="title">Camiseta 3</label>
			<label class="price">18 €</label>
			<label class="stock">Stock 10</label>
		</div>

Y este es la parte js:

$(function() {
	$(".item").dblclick(function(event){
		var stock = parseInt($(this).find(".stock").html().replace("Stock ", ""));
		var pvpArticulo = parseInt($(this).find(".price").html().replace("€", ""));
		
	if(stock >0){
		var stock_cambia=0;
		var contador_compra=0;
		stock_cambia=stock-1;
		$(".stock").text("Stock "+ stock_cambia);		
		contador_compra++; /**no me sale**/
		$("#citem").val(contador_compra);
		
		
			if(stock_cambia==0){
			 $(".stock").addClass("agotado"); 
			
		}
		}				
})

});

No sé si tengo que jugar con el evento hover también para que detecte que el ratón está encima...o si tengo que jugar con sus id (aunque no se me ocurre cómo) :qq: una ayudita?

RaymaN

El elemento $('.stock') contiene todos los label con clase stock. Si quieres aplicar la acción a un label en concreto tienes que seleccionarlo mediante la id del item.

1 respuesta
t3r3r3

Yo estoy empezando tambien casi, asi que no me hagas mucho caso, pero si le metes al .stock, es logico que te bajen todos? Deberias aplicarlo al id.

Edit: lo que dice el de arriba basicamente.

1 respuesta
Tolomeo

#2 #3 pero cómo saco el id del stock del elemento que he clickado?

1 respuesta
RaymaN

#4

$(".item").dblclick(function(event){
    var id = $(this).attr('id');
1 1 respuesta
Tolomeo

#5 gracias,voy a probar

1 respuesta
eXtreM3

#6 no hace falta ni que saques el id, con la función find puedes hacer un

$(".item").dblclick(function(event){
    var actualstock = $(this).find('.stock').text();
    //aqui conviertes actualstock en int, le restas 1 y lo vuelves a colocar en $(this).find('.stock').text(nuevo_stock) haciendo lo que ya haces con la palabra "Stock"
1 respuesta
Tolomeo

#7 :O :O :O :O creo que es mucho mejor!!!!! mil gracias!!!

Usuarios habituales

  • Tolomeo
  • eXtreM3
  • RaymaN
  • t3r3r3