我正在从列表中删除项目,计数器会减少要删除的元素之前的元素数量,而不是只减少一个
为什么?
$(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);
在#clckToInsert
点击处理程序中,每次触发a
时,都会将一个额外的点击处理程序绑定到它:
$("#clckToInsert").click(function () {
/* ... */
$('a').click(function () {
因此,每次触发#clckToInsert
处理程序时,页面上的每个a
都会附加一个额外的处理程序。因此,每次点击a
都会触发那么多处理程序,从而减少次数。
您正在将count--
回调绑定到任何<a>
元素。这意味着对于任何给定的链接都有n
处理程序。
如果你改变了以下内容,它应该是可以的。
var $li = $(li)
$('#list').append($li)
$li.find('a').click