Last row total not updated when change in salary or bonus or deduction

Last row total not updated when change in salary or bonus or deduction

n my task below i have only one point.
when i changed in cell of bonus or salary or deduction it can changed in total of row but i cannot change in total of columns when i change in cell of salary or bonus or deduction automatically 
to explain
Name salary bonus deduction total

Ahmed 1000 500 500 1000

Ali 2000 400 600 1800

total 3000 900 1100 2800

total=salary + bonus - deduction(for row)
the wrong in when i change in bonus cell for name Ahmed from 500 to 700
total for column bonus not changed it still 900 until i click new row and click button add again value come correctly as following (after change)
Name salary bonus deduction total

Ahmed 1000 700 500 1200

Ali 2000 400 600 1800

total 3000 900 1100 2800

as notice total for column bonus 900 not changed 
and total for all columns 2800 not changed
this is my wrong for my code 
how to solve that


  1. @{
  2.     Layout = null;
  3. }

  4. <!DOCTYPE html>

  5. <html>
  6. <head>
  7.     <meta name="viewport" content="width=device-width" />
  8.     <title>Index</title>
  9.     <script src="~/Scripts/jquery-1.10.2.js"></script>
  10.     <script>
  11.         $(function () {
  12.             $("#btn").click(function () {
  13.                 var x = $("#txt1").val();
  14.                 var y = $("#txt2").val();
  15.                 var z = $("#txt3").val();
  16.                 var M = $("#txt4").val();
  17.                 var L = parseInt(y) + parseInt(z) - parseInt(M);

  18.                 $("#tb").append("<tr> <td class='total-ignore'>" + x + "</td> <td>" + y + "</td> <td>" + z + "<td>" + M + "</td><td>" + L + "</td></tr>");
  19.                 var totals = [];
  20.                 $('#tb').find('tr').each(function () {
  21.                     var $row = $(this);

  22.                     $row.children('td').not('.total-ignore').each(function (index) {
  23.                         totals[index] = totals[index] || 0;
  24.                         totals[index] += parseInt($(this).text()) || 0;
  25.                     });
  26.                 })
  27.                 $('#totals td').not('.total-ignore').each(function (index) {
  28.                     $(this).text(totals[index]);
  29.                 });
  30.                 $("#tb tr").each(colorize);
  31.             });
  32.             $("#tb").on("click", "tr", function () {

  33.                 $(this).find("td").slice(0, 4).prop("contenteditable", true);

  34.                  }).on('blur keyup paste input', "tr", colorize)
  35.          
  36.             });

  37.     </script>
  38.     <script>
  39.         function colorize() {
  40.             var numbers = $(this).find("td").slice(1, 4).get().map(function (el) {
  41.                 console.log(arguments)
  42.                 return +$(el).text()
  43.             })
  44.             var total = numbers[0] + numbers[1] - numbers[2]

  45.             var totalEl = $(this).find("td:nth-child(5)").html(total);
  46.             totalEl.removeClass("green yellow red");


  47.             if (total > 1000) {
  48.                 totalEl.addClass("green");
  49.             }
  50.             if (total < 1000) {
  51.                 totalEl.addClass("red");
  52.             }
  53.             if (total == 1000) {
  54.                 totalEl.addClass("yellow");
  55.             }

  56.         }

  57.     </script>
  58.     <style>
  59.         .red {
  60.     background-color: red;
  61.     font-weight: bold;
  62.     color:white;
  63. }

  64. .green {
  65.     background-color: green;
  66. }

  67. .yellow {
  68.     background-color: yellow;
  69. }

  70.     </style>
  71. </head>
  72. <body>
  73.     <div>
  74.         Name
  75.         <input type="text" id="txt1" />
  76.         <br /> Salary
  77.         <input type="text" id="txt2" />
  78.         <br /> Bonus
  79.         <input type="text" id="txt3" />
  80.         <br /> Deduction
  81.         <input type="text" id="txt4" />
  82.         <br />
  83.         <input type="button" value="add" id="btn" />
  84.         <table>
  85.             <thead>
  86.                 <tr>
  87.                     <td>
  88.                         Name
  89.                     </td>
  90.                     <td>
  91.                         Salary

  92.                     </td>
  93.                     <td>
  94.                         Bonus
  95.                     </td>
  96.                     <td>
  97.                         Deduction
  98.                     </td>
  99.                     <td>
  100.                         total
  101.                     </td>
  102.                 </tr>
  103.             </thead>
  104.             <tbody id="tb" class="tb1"></tbody>
  105.             <tfoot id="totals">
  106.                 <tr>
  107.                     <td class="total-ignore">Total</td>
  108.                     <td></td>
  109.                     <td></td>
  110.                     <td></td>
  111.                     <td></td>
  112.                 </tr>
  113.             </tfoot>
  114.         </table>
  115.     </div>
  116. </body>
  117. </html>