如何将计数器限制为特定数字?

时间:2012-10-05 20:27:02

标签: jquery counter

我已经设置了一个计数器来跟踪点击下一个和上一个按钮的次数。

  1. click = one 上一个按钮出现
  2. click = 9 下一个按钮消失
  3. 我想限制计数器的数量。例如10.一旦达到10.

    // Buttons
    var count = 0;
    $("#mod3-6-1_nextbutton").click(function() {
        $("#actions-container").css({
            "top" : "-=110px"
        });
    
        count += 1;
        counter();
    });
    $("#mod3-6-1_backbutton").click(function() {
        $("#actions-container").css({
            "top" : "+=110px"
        });
        count -= 1;
        counter();
    });
    
    function counter() {
    
        if (count == 0) {
            $("#mod3-6-1_backbutton").css({
                "top" : "-9999px",
                "left" : "-9999px",
            }); 
        }
        if (count == 1) {
            $("#mod3-6-1_backbutton").css({
                "top" : "20px",
                "left" : "44px",    
            }); 
        }
        if (count > 9) {
            $("#mod3-6-1_nextbutton").css({
                "top" : "-9999px",
                "left" : "-9999px",
            });
            $("#actions-container").css({
                     "top" : "-990px"
                 });
        }
        else {
                $("#mod3-6-1_nextbutton").css({
                       "top" : "20px",
                      "left" : "700px",
    
            }); 
        }
    
    }
    

3 个答案:

答案 0 :(得分:0)

这应该为你完成工作

return (counter < 10);

一旦计数器为10并且你的代码不会被执行,这将把返回值设置为false ..一旦返回false;

   var count = 0;
$("#mod3-6-1_nextbutton").click(function() {
    count += 1;
    if (count > 9) {
        return false;
    }
    else if (count == 9) {
        // DO nothing
    }
    else {
        $("#actions-container").css({
            "top": "-=110px"
        });
    }
    counter();
});
$("#mod3-6-1_backbutton").click(function() {

    count -= 1;
    if (count > 9) {
        return false;
    }
    else if (count == 0) {
        // DO nothing
    }
    else {
        $("#actions-container").css({
            "top": "+=110px"
        });
    }
    counter();
});​

答案 1 :(得分:0)

如果计数小于最大值,则仅执行操作,并且由于下一个按钮消失,计数无论如何都不能超过最大值。一种草率的做法就是说

if (count < max) {
    // make sure the right button shows and
    // do stuff
} else {
    // make button disappear
}

你也可以用css类替换那些css行,并使用addClass()/ removeClass()来实现样式。为了使其更加强大,您可以从您拥有的幻灯片数量中获得最大数量

var max = $('#slider .slides').length;

答案 2 :(得分:0)

许多重复的代码,只是你必须做的一个例子。

var count = 0;
var LIMIT = 10;

$("#mod3-6-1_nextbutton, #mod3-6-1_backbutton").click(function() {
    var top, count;
    if($(this).is('#mod3-6-1_nextbutton')) {
        if(count == LIMIT) return false;
        top = "-=110px";
        val = 1;
    } else {
        top = "+=110px";
        val = -1;
    }

    $("#actions-container").css({
        "top" : top
    });
    count += val;
    counter();
});