var的Javascript递减计数失败

Javascript down count of var fails

本文关键字:失败 Javascript var      更新时间:2023-09-26

我在html中得到了一个button,它由AJAX设置了一个新的tr所以我构建了一个函数(下面的代码)来添加它,它工作得很好,但现在我想要一个counter来查看我有多少行,上行counter有效,在所有行的末尾,我都有一个"垃圾"图标,到了click,行就消失了(这也很好),但下行计数器有一个issue这是logic

15141295.0-6-13-21-30-40-51-63-76-90

"正常情况下,从15到1"

var partcount = 1;
$('#AddName').click(function () {
    partcount ++;
    $.ajax({
        type: "POST",
        url: "@Url.Action("addParticipantToForm", "Events")",
        success: function (data) {
            $('.table tr:last').after(data);
        },
    });
    console.log(partcount);
    document.getElementById("partisipants-counter").innerHTML = partcount;
});

这是一页

第二个页面是每次按下添加按钮时执行的页面,所以我必须在这里设置垃圾桶的脚本,否则它将无法工作

@model Livework.Web.Ticketing.ViewModels.CustomerViewModel
<tr>
<td>
    naam
</td>
<td>
    @Html.EditorFor(model  => model.thePartisipant.Name, new { htmlAttributes = new {       @class = "form-control" } })
</td>
<td>
    <button type="button" class="btn btn-default remove-name">
        <span class="glyphicon glyphicon-trash"></span>
    </button>
</td>
</tr>
<script>
$('.remove-name').click(function () {
    $(this).closest('tr').remove();
    partcount--;
    document.getElementById("partisipants-counter").innerHTML = partcount;
    console.log(partcount);
});
</script>

抱歉我英语不好,如果有任何问题,请告诉我提前感谢

注意模式是如何"减一,再减二,再减三,再减四"的。。。

这是因为您正在重复绑定事件处理程序,因此它被调用的次数越来越多。

相反,请尝试委派事件处理程序。类似于
$(some container).click('.remove-name',function() {...});

正如我所说,你可以这样尝试:you can put your partcount value inside hidden element and when you want to decrement the value - get the value from that hidden element and subtract it by 1

假设您有隐藏字段:

<input type="hidden" id="count_hidden" value="1">

Jquery:

    $('#AddName').click(function () {
        var partcount = parseInt($('#count_hidden').val());
        partcount ++;
        $('#count_hidden').val(partcount)
        // You code//
    });

    $('.remove-name').click(function () {
      $(this).closest('tr').remove();
       var partcount = parseInt($('#count_hidden').val());
       partcount--;
       $('#count_hidden').val(partcount);
       //your code
   });