Что не так с уменьшением счетчика?

0

Я удаляю элемент из списка, а счетчик уменьшается на количество элементов до того, которое нужно удалить, а не просто уменьшается на один

Почему это?

 $(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);
Теги:
arrays
counter

2 ответа

1

Внутри обработчика кликов #clckToInsert вы привязываете дополнительный обработчик кликов каждый раз a каждом #clckToInsert:

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

Поэтому каждый раз, когда #clckToInsert обработчик #clckToInsert, каждый a на вашей странице имеет дополнительный обработчик. Таким образом, каждый клик по принципу a огне, что многие обработчики, убывающие, что количество раз.

0

Вы привязываете count-- вызов count-- к любому элементу <a>. Это означает, что у вас есть n обработчиков для любой ссылки.

Если вы что-то изменили, следующее должно быть в порядке.

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

$li.find('a').click
  • 0
    value является строкой. string.find не удастся.
  • 0
    Ой, думал, что это новый Ли.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню