从Panel -JS中删除所选项目

问题描述 投票:0回答:1

以下是我的代码以这种方式工作。当用户选中复选框时,它会附加所选的项目名称和价格,并根据用户输入的数量计算子总数。

现在,当用户取消选中复选框时,取消选择的项目将消失,总计将总数减少到旧总计(之前的总计)。

我想要实现的是,我的html下面我可以图标fa fa-close,我想要它执行,如何取消选中一个复选框。因此,当用户点击该图标时,它会删除相应的项目,并将总数减少到旧的总数

function order(food) {
  var ad = JSON.parse(food.dataset.food),
    existing;
  if (food.checked == true) {
    $('.panel').append(
      '<div class="container" style=" font-size:14px; "> ' +
      '<input type="hidden"  value=' + ad.id + ' data-id="' + ad.id + '"   name="food_id[]" />' +
      '<table style="width:100%;" class="table" id="tables">' +
      '<thead>' +
      '<thead>' +
      '<tbody id="item_list">' +
      '<tr>' +
      '<td  class="icon" ><a href="#"><i class="fa fa-close"></a></i></td>' +
      '<td  class="name" >' + ad.name + '</td>' +
      '<td  class="price" data-price="' + ad.price + '">' + ad.price + '</td>' +
      '<td><p class="total" ><span class="line-total" name="total" id="total"></span></p></td>' +
      '</tr>' +
      '</tbody>' +
      '</table>' +
      '</div>'
    )
  }
} else {
  var total = $(".panel .container [data-id=" + ad.id + "]").parent().find(".total").text();
  $(".panel .container [data-id=" + ad.id + "]").parent().remove();

  if (total) {
    $('.checkout span').text(function(index, oldtext) {
      console.log('this is my old text ' + oldtext)
      return oldtext ? oldtext - total : oldtext;
    });
  }
}



$('.panel').on('keyup', '.quantity', function() {
  order_container = $(this).closest('div');
  quantity = Number($(this).val());
  price = Number($(this).closest('div').find('.price').data('price'));
  points = Number($(this).closest('div').find('.points').data('points'));
  order_container.find(".total span").text(quantity * price);
  order_container.find(".pts-total span").text(quantity * points);
  sum = 0;
  points = 0;
  $(".line-total").each(function() {
    sum = sum + Number($(this).text());
  })
  $(".pts-total").each(function() {
    points = points + Number($(this).text());
  })
  $('.checkout span').text(sum);
});
javascript jquery
1个回答
1
投票

您可以尝试这个简单的点击事件

$('.panel').on('click','.fa.fa-close',function(){
 $(this).closest('.container').remove();//remove the current element

 var sum = 0;
 $(".line-total").each(function(){
       sum = sum + Number($(this).text());
 });//calculate the new sum 
 $('.checkout span').text(sum);

})
© www.soinside.com 2019 - 2024. All rights reserved.