javascript - jQuery:加1后只减1

标签 javascript jquery html css

我如何在 jQuery 中执行此操作。我已经有一个脚本可以在点击一个按钮后加 1。但我还想要一些东西,如果我再次单击该按钮,它应该减去 1,并将按钮返回到其原始状态。

这是我当前的 jquery 代码

$(document).ready(function() {
    $("#addMe").one('click',function(){
        var counter = parseInt($("#hiddenVal").val());

        counter++;

        $("#hiddenVal").val(counter);
        $("#theCount").text(counter);
        $("#addMe").toggleClass('active');
    });
});

这是我的实时 js fiddle :http://jsfiddle.net/jehzlau/7hv2eyv0/

现在,我点击它后它会加 1。该按钮只能单击一次以添加 + 1。按钮的颜色会发生变化。这是我想要实现的第一个目标,而且它已经在发挥作用。

我现在唯一的问题是再次单击后还原更改。

比如你点击按钮,现在是蓝色,心形是黑色,数字是2。我想要的是,如果你再次点击,按钮会默认再次变成绿色,心形到白色,数字 2 比 1。我只想反转第二次单击时发生的情况。然后如果我再次点击它(第 3 次点击),它会回到 2,然后按钮会变成蓝色,心形会再次变成黑色。如果我再次点击它(第 4 次点击),它会再次恢复。等等……等等……

这就是我想做的,但我做不到。我希望这里有人能指出我正确的方向。 :(

最佳答案

我会这样做。查看事件类是否存在,然后根据它递增/递减计数器:

       $("#addMe").on('click',function(){
            var counter = parseInt($("#hiddenVal").val());
            if($(this).hasClass('active'))
                counter--;
            else
                counter++;
            $("#hiddenVal").val(counter);
            $("#theCount").text(counter);
            $("#addMe").toggleClass('active');
        });

Working Demo

关于javascript - jQuery:加1后只减1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25237486/

相关文章:

javascript - 不能将 child 附加到数组中的每个 DOM 元素?

javascript - 如何在任何特定 Div 中的 Scroll 上打印警报?

javascript - BigVideo.js - 检查浏览器是否支持,背景图像后备

javascript - 使用 jQuery 将 json 值返回到表单字段

javascript - DocType 声明问题

javascript - PHP 下拉列表所选值未插入数据库

javascript - 如何使用 jQuery 对选定的 html 选择元素进行计数

javascript - 获取后映射预输入建议

javascript - 使用 Highcharts 5 的 dataLabels 样式参数的颜色对比度设置不适用于某些颜色

javascript - 需要帮助循环 3 个循环以在 Google 脚本中附加数据