aras00fb adlı üyeden alıntı: mesajı görüntüle
sıralı seçersem doğru hesaplıyor ama geri dönüp bir değeri değiştirirsem hesaplamıyor. Yardımcı olabilir misiniz?


kod burada..
https://codepen.io/ARAS-_FB/pen/LYveNje
Selamlar.

Sıralı olarak yaptığımızda düzelten kod :

var taxRate = 0.2; 
var fadeTime = 300;



$('.mesafe input').change( function() {
  updatemesafe(this);
});
$('.sefer input').change( function() {
  updatesefer(this);
});



function recalculateCart()
{
  var subtotal = 0;
  

  $('.satır').each(function () {
    subtotal += parseFloat($(this).children('.günlük').text());
  });
  

  var tax = subtotal * taxRate;
  var total = subtotal + tax;
  

  $('.totals-value').fadeOut(fadeTime, function() {
    $('#cart-subtotal').html(subtotal.toFixed(2));
    $('#cart-tax').html(tax.toFixed(2));
    $('#cart-total').html(total.toFixed(2));
    if(total == 0){
      $('.checkout').fadeOut(fadeTime);
    }else{
      $('.checkout').fadeIn(fadeTime);
    }
    $('.totals-value').fadeIn(fadeTime);
  });
}



function updatemesafe(mesafeInput)
{

  var satırRow = $(mesafeInput).parent().parent();
  var birim = parseFloat(satırRow.children('.birim').text());
  var mesafe = $(mesafeInput).val() || 0;
  var tekyön = birim * mesafe;
  

  satırRow.children('.tekyön').each(function () {
    $(this).fadeOut(fadeTime, function() {
      $(this).text(tekyön.toFixed(2));
      // Birim fiyatını tekrar hesapla
      hesaplaBirim(satırRow);
      recalculateCart();
      $(this).fadeIn(fadeTime);
    });
  });  
}


function updatesefer(seferInput)
{

  var satırRow = $(seferInput).parent().parent();
  var tekyön = parseFloat(satırRow.children('.tekyön').text());
  var sefer = $(seferInput).val() || 0;
  var günlük = tekyön * sefer;
  

  satırRow.children('.günlük').each(function () {
    $(this).fadeOut(fadeTime, function() {
      $(this).text(günlük.toFixed(2));

      hesaplaBirim(satırRow); 
      recalculateCart();
      $(this).fadeIn(fadeTime);
    });
  });  
}


function hesaplaBirim($parent) {
  var bölgetotal = parseInt($parent.find('#bölge option:selected').attr('tutar')) || 0; 
  var kapasitetotal = parseInt($parent.find('#kapasite option:selected').attr('tutar')) || 0;
  var markatotal = parseInt($parent.find('#marka option:selected').attr('tutar')) || 0;
  var modeltotal = parseInt($parent.find('#model option:selected').attr('tutar')) || 0;
  var saattotal = parseInt($parent.find('#saat option:selected').attr('tutar')) || 0;
  birim = bölgetotal + kapasitetotal + markatotal + modeltotal + saattotal;
  $parent.find('.birim').html(birim);
}
 
$('#bölge, #kapasite, #marka, #model, #saat').change(function() {
  hesaplaBirim($(this).parents(".satır"));
});
Resim için : https://ibb.co/z7RNsS0

Bu kodda, sıralı işlem yapmadan fiyatlara yansıtır :

var taxRate = 0.2;
var fadeTime = 300;


$('.mesafe input, .sefer input').change(function() {
  updateValues(this);
});


function recalculateCart() {
  var subtotal = 0;


  $('.satır').each(function() {
    subtotal += parseFloat($(this).children('.günlük').text());
  });


  var tax = subtotal * taxRate;
  var total = subtotal + tax;


  $('.totals-value').fadeOut(fadeTime, function() {
    $('#cart-subtotal').html(subtotal.toFixed(2));
    $('#cart-tax').html(tax.toFixed(2));
    $('#cart-total').html(total.toFixed(2));
    if (total == 0) {
      $('.checkout').fadeOut(fadeTime);
    } else {
      $('.checkout').fadeIn(fadeTime);
    }
    $('.totals-value').fadeIn(fadeTime);
  });
}


function updateValues(inputElement) {
  var satırRow = $(inputElement).parent().parent();
  var birim = parseFloat(satırRow.children('.birim').text());
  var mesafe = satırRow.find('.mesafe input').val() || 0;
  var sefer = satırRow.find('.sefer input').val() || 0;
  var tekyön = birim * mesafe;
  var günlük = tekyön * sefer;


  satırRow.children('.tekyön').fadeOut(fadeTime, function() {
    $(this).text(tekyön.toFixed(2));
    $(this).fadeIn(fadeTime);
  });
  satırRow.children('.günlük').fadeOut(fadeTime, function() {
    $(this).text(günlük.toFixed(2));
    $(this).fadeIn(fadeTime);
  });


  hesaplaBirim(satırRow);
  recalculateCart();
}


function hesaplaBirim($parent) {
  var bölgetotal = parseInt($parent.find('#bölge option:selected').attr('tutar')) || 0;
  var kapasitetotal = parseInt($parent.find('#kapasite option:selected').attr('tutar')) || 0;
  var markatotal = parseInt($parent.find('#marka option:selected').attr('tutar')) || 0;
  var modeltotal = parseInt($parent.find('#model option:selected').attr('tutar')) || 0;
  var saattotal = parseInt($parent.find('#saat option:selected').attr('tutar')) || 0;
  birim = bölgetotal + kapasitetotal + markatotal + modeltotal + saattotal;
  $parent.find('.birim').html(birim);
}

$('#bölge, #kapasite, #marka, #model, #saat').change(function() {
  hesaplaBirim($(this).parents(".satır"));
});
Problem devam ederse yazabilirsiniz.
Anakoddaki problem updatemesafe/sefer fonksiyonlarına hesaplamayı eklememişsiniz.

Sevgiler.