如何在jQuery .click函数中添加和减去数字?

时间:2012-05-03 00:30:14

标签: jquery

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

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

  • 添加课程“checkmark”
  • 删除课程“复选框”
  • 使用“您的请求列表中有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>');


});

`

1 个答案:

答案 0 :(得分: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,但许多复选框可能会变慢。