计数器减少了什么问题?

时间:2014-03-11 01:03:00

标签: jquery arrays counter

我正在从列表中删除项目,并且计数器减少了要删除的元素之前的元素数量而不是仅减少一个

为什么?

 $(document).ready(function () {
    var count = 0;
            $("#clckToInsert").click(function () {
                var value = $('#misInput').val();
                var deleter = "<a href = #> X </a>";
                var li = '<li id = "item">' + value + deleter + '</li>'; 
                count++;
                $("#counter").html(count);
                $("#list").append(li);

                $('a').click(function () {
                    count--;
                    $(this).parent().remove();
                    $("#counter").html(count);

2 个答案:

答案 0 :(得分:1)

#clckToInsert点击处理程序的内部,每次触发时,您都会为每个a绑定一个额外的点击处理程序:

$("#clckToInsert").click(function () {
    /* ... */
    $('a').click(function () {

因此,每次#clckToInsert处理程序触发时,页面上的每个a都会附加一个附加处理程序。因此,每次点击a都会触发许多处理程序,这会减少很多次。

答案 1 :(得分:0)

您正在将count--回调绑定到任何<a>元素。这意味着您有任何给定链接的n个处理程序。

如果您更改了以下内容,则应该没问题。

var $li = $(li)
$('#list').append($li)

$li.find('a').click