【问题标题】:Javascript down count of var failsvar 的 Javascript 计数失败
【发布时间】:2014-09-02 08:57:39
【问题描述】:

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

15 14 12 9 5 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>

对不起,我的英语不好, 如果有任何问题,请告诉我 提前致谢

【问题讨论】:

  • 您有两个 partcount 声明。如果您删除其中一个,它应该可以工作。
  • 不幸的是,我正在测试代码中的那部分以使其成为单词
  • @Jeroen 你为什么不把你的partcount 值放在隐藏元素中,当你想减少值时 - 从隐藏元素中获取值并将其减去 1
  • @RakeshShetty 你能在我的答案中发布一个例子吗,因为它是一个很好的问候,但不知道如何使用它#stillLearning
  • 好的 @Jeroen 让我这样做

标签: javascript jquery html variables


【解决方案1】:

注意模式是如何“减一,再减二,再减三,再减四”...

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

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

【讨论】:

  • 你能用问题中的更新举个例子吗(我发布了完整的文件)
【解决方案2】:

正如我所说,你可以这样尝试: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
   });

【讨论】:

  • 为什么这是一种用户可以在浏览器控制台中使用的方法,比变量更好(如果它在一个闭包中,如果不付出很大的努力就不能搞砸)?
猜你喜欢
  • 1970-01-01
  • 2020-08-20
  • 1970-01-01
  • 2016-05-19
  • 2014-09-26
  • 2018-11-29
  • 2020-03-04
  • 1970-01-01
  • 2021-12-23
相关资源
最近更新 更多