0

我将使用 jQuery 来执行以下操作:

单击具有“复选框”类的元素后:

  • 添加类“复选标记”
  • 删除类“复选框”
  • 使用“您的请求列表中有 x 个应用程序”更新 div,其中 x 是已单击的数字
  • 当单击带有“复选标记”的类时,它将从显示的数字中减去

我的示例代码没有显示所有这些功能,但除了更新已单击/“未单击”的数字外,我能够完成此操作。

`

$("span.checkbox").click(function() {

    if(!oldVal) {
        var oldVal = "0";
    }

    var newVal = parseFloat(oldVal) + 1;

    var oldVal = newVal;

    $("#wishlistapps").html('<li>You have ' + newVal + ' apps in your request list</li>');


});

`

4

1 回答 1

2

您需要在点击处理程序之外声明您的计数器变量。当调用处理程序时,您当前正在执行的方式oldVal始终为零。

var totalChecked = 0;
$("span.checkbox, span.checkmark").click(function() {
     var el = $(this);
     if(el.hasClass('checkbox')) {
         el.removeClass('checkbox');
         el.addClass('checkmark');
         totalChecked++;
     } else {
         el.removeClass('checkmark');
         el.addClass('checkbox');
         totalChecked--;
     }
     $("#wishlistapps").html('<li>You have ' + totalChecked + ' apps in your request list</li>');
});

演示:http: //jsbin.com/ufopok/2

您也可以$('.checkmark').length按照我在上面的评论中所说的那样使用,但是使用许多复选框可能会变慢。

于 2012-05-03T00:40:12.773 回答