0

我在找 :

计算时间 - 以秒和分钟为单位。我的计数我希望它在单击一个按钮时开始,如果再次单击则停止。单击时,我从零开始计数每个按钮。

这是我尝试过的,但似乎不起作用。

function toggle(ths) {
    $(ths).toggleClass("btnColor");
    $("#tb").toggleClass("btnColorR")
    var secondCounter = 0;
    var minutes = 0;
    var t;
    var timer_is_on = 0;
    var clicked = $(ths).val();
    secondCounter = secondCounter + 1;
    if ((secondCounter % 60 == 0 )&&(clicked)) {
        minutes += 1;
        secondCounter = 0;
    }
    $("#setCount").html(" downtime type: " + clicked + " minutes: " + minutes + "     seconds: " + secondCounter);
}
4

3 回答 3

1

如果您发布调用该toggle()函数的 html 代码,问题就会很清楚。

我的猜测是每次调用函数minutes时都会重置为 0。secondCountertoggle()

于 2013-03-14T07:49:22.973 回答
0

如果你想知道多少时间按钮被切换下来,你可以试试这个代码:

var displayElapsedTime,
    startTimeCounter,
    isDown;

isDown = function isDown($this) {
  return $this.is('.down');
};

displayElapsedTime = function displayElapsedTime($this) {
  var time = new Date((new Date()) - $this.data('time'));
  $this.val(time.getMinutes() + ':' + time.getSeconds());
};

startTimeCounter = function startTimeCounter($this) {
  setTimeout(function() {
    displayElapsedTime($this);
    if(isDown($this)) {
      startTimeCounter($this);
    }
  }, 1000);
};

$('input').on('click', function() {
  var $this = $(this);

  if(!isDown($this)) {
    $this.data('time', new Date());
    startTimeCounter($this);
  }

  $this.toggleClass('down');
});

您可以在此处查看工作示例:http: //jsbin.com/ahafez/3/edit

于 2013-03-14T08:11:18.247 回答
0

我假设您需要一种方法来查找两次单击按钮之间经过的时间

还假设在第二次单击时您想知道自上次单击以来所花费的时间并重置计数器

如果是这样,我有一个简单的 jsfiddle,您可以查看:http: //jsfiddle.net/8cjBj/

HTML 代码:

<a href="#" id="btn">This is a button</a>

JS代码:

var start = 0;
var end = 0;

$('#btn').click(function(event){
    event.preventDefault();

    if(start == 0)
        start = new Date();
    else
    {
        end = new Date();
        millis = end - start;
        var totalSeconds = parseInt(millis / 1000);
        var minutes = parseInt(totalSeconds / 60);
        var seconds = totalSeconds % 60;
        alert('Elapsed Time: ' + minutes + ' Minutes and ' + seconds + ' seconds');
        start = 0;
    }

});
于 2013-03-14T07:53:05.873 回答