Sono nuovo a jQuery quindi vado per tentativi e chiedo a chi è più esperto un aiuto.
Questa è la parte di codice incriminata
	
	
	
		
Il problema in particolare è nella parte relativa a al ricalcolo del totale
	
	
	
		
in pratica questa funzione calcola il totale del prezzo ad ogni click su una mappa e lo ricalcola quando viene cliccato nuovamente l'elemento (deselezionandolo).
Quando clicco per selezionare la funzione calcola il totale correttamente, mentre quando riclicco un elemento per deselezionarlo, alla prima deselezione (o riclick), l'importo non viene sottratto.
Per essere più concreto faccio un esempio:
se seleziono tre elementi al prezzo di 10 euro ciascuno, ad ogni click il totale viene aggiornato correttamente (10+10+10=30);
quando deseleziono i tre elementi, al primo click il totale non viene aggiornato mentre mentre nei successivi riclick il totale viene sì aggiornato ma non ritorna =0 bensì 10.
Cioè mi trovo che non essendo selezionato alcun elemento, il totale mi riporta 10!
Ho provato ad inserire questa variazione ma il calcolo viene completamente errato
	
	
	
		
Qualche suggerimento?
Grazie
				
			Questa è la parte di codice incriminata
		Codice:
	
	 click: function () { //Click event
  if (this.status() == 'available') { //optional seat
   var maxSeats = 3;
   var ms = sc.find('selected').length;
   //alert(ms);
   if (ms < maxSeats) {
   
                price = this.settings.data.price;
                
                /*
                    $('<option selected>R'+(this.settings.row+1)+' S'+this.settings.label+'</option>')
                    .attr('id', 'cart-item-'+this.settings.id)
                    .attr('value', (this.settings.row+1)+'_'+this.settings.label)
                    .data('seatId', this.settings.id)
                    .appendTo($cart);
                */
                    
                    $('<option selected>R'+(this.settings.row+1)+' S'+this.settings.label+'</option>')
                    .attr('id', 'cart-item-'+this.settings.id)
                    .attr('value', this.settings.id)
                    .attr('alt', price)
                    .data('seatId', this.settings.id)
                    .appendTo($cart);
                $counter.text(sc.find('selected').length+1);
                $counter.attr('value', sc.find('selected').length+1);
                $total.text(recalculateTotal(sc));
                $total.attr('value', recalculateTotal(sc));
                return 'selected';
            }
                alert('You can only choose '+ maxSeats + ' seats.');
                return 'available';
        } else if (this.status() == 'selected') { //Checked
                //Update Number
                $counter.text(sc.find('selected').length-1);
                $counter.attr('value', sc.find('selected').length-1);
                //update totalnum
                $total.text(recalculateTotal(sc));
                $total.attr('value', recalculateTotal(sc));
                //Delete reservation
                $('#cart-item-'+this.settings.id).remove();
                //optional
                return 'available';
        } else if (this.status() == 'unavailable') { //sold
            return 'unavailable';
        } else {
            return this.style();
        }
    }
});
	Il problema in particolare è nella parte relativa a al ricalcolo del totale
		Codice:
	
	                $total.text(recalculateTotal(sc));
                $total.attr('value', recalculateTotal(sc));
	Quando clicco per selezionare la funzione calcola il totale correttamente, mentre quando riclicco un elemento per deselezionarlo, alla prima deselezione (o riclick), l'importo non viene sottratto.
Per essere più concreto faccio un esempio:
se seleziono tre elementi al prezzo di 10 euro ciascuno, ad ogni click il totale viene aggiornato correttamente (10+10+10=30);
quando deseleziono i tre elementi, al primo click il totale non viene aggiornato mentre mentre nei successivi riclick il totale viene sì aggiornato ma non ritorna =0 bensì 10.
Cioè mi trovo che non essendo selezionato alcun elemento, il totale mi riporta 10!
Ho provato ad inserire questa variazione ma il calcolo viene completamente errato
		Codice:
	
	...........
...........
                $total.text(recalculateTotal(sc)+this.settings.data.price);
                $total.attr('value', recalculateTotal(sc)+this.settings.data.price);
                return 'selected';
            }
                alert('You can only choose '+ maxSeats + ' seats.');
                return 'available';
        } else if (this.status() == 'selected') { //Checked
......
......
                //update totalnum
                $total.text(recalculateTotal(sc)-this.settings.data.price);
                $total.attr('value', recalculateTotal(sc)-this.settings.data.price);
	Qualche suggerimento?
Grazie