计时器增加到3,然后总是设置为0

时间:2014-11-20 19:52:41

标签: javascript jquery

var times = 0;
$(selector).on('click',function(){
    times += 1;
    if(times > 3){
        times = 0
    }
    console.log(times);
});

这将记录:

1,2,3,0,1,2,3,0,and so on ...

但我想得到这样的结果:

1,2,3,0,0,0,0, ..... , 0

这意味着在数字3之后,时间变量应始终为0

我该怎么做?

6 个答案:

答案 0 :(得分:1)

另一个:

var times = 1;
$(function(){
$("#test").on('click',function(){ 
  console.log(times);
  if(times >= 3 || times == 0){
    times = -1
  }
  times += 1;        
});
});

工作小提琴:http://jsfiddle.net/robertrozas/q1ywowm1/1/

答案 1 :(得分:0)

var times = 0;
var canClick = true;
$("#test").on('click',function(){

    if ((times <= 3) && (canClick == true)) times += 1;

    if (times == 4){

        canClick = false;  
        times = 0

    } 
    console.log(times);
});

小提琴: http://jsfiddle.net/0b9ovztf/1/

答案 2 :(得分:0)

    var times = 0, n;
    $('button').on('click',function(){
        n = times++;
        if(times > 4){
           n = 0;
        }
        $(this).text(n);
        console.log(n);
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button>increment</button>

答案 3 :(得分:0)

就像在条件if中包含所有内容一样简单:

var times = 0;
$(selector).on('click',function(){
    if(times < 3){
        times++;
    }
    else{
        times = 0;
        $(this).off('click');
    }
    console.log(times);
});

FIDDLE:http://jsfiddle.net/ffebLqzs/

答案 4 :(得分:0)

这个怎么样?

var do_count = true, times = 0;
$(selector).on('click',function(){
  if (do_count) {
    times += 1;
    if (times > 3) {
      times = 0;
      do_count = false;
    }
  }
  console.log(times);
});

答案 5 :(得分:0)

你需要设置一个标记hitzero默认为false,当true命中为零时为times,当你增加times时,请确保只有在hitzerofalse

时才会增加它

这是一个有效的演示:DEMO

以下是代码:

var times = 1;
var hitzero=false;
$(function(){
$("#test").on('click',function(){ 
    if(hitzero==false)
        times += 1;
    if(times > 3){
        times = 0
        hitzero=true;
    }
    alert(times);     
});
});