javascript - 为什么我的按钮无法触发计时器?

标签 javascript jquery datetime button

我找到了一个非常简单的 Javascript 示例来了解时间跟踪器的工作原理。我几个小时以来一直在比较代码,但无法运行。时钟更新正常,但按钮未触发时间跟踪器。

我的错误在哪里?

下面是示例 JS 代码。时钟根据定义的“setInterval()”定期更新。我只是找不到按下按钮后触发时钟启动的错误。

$(function() {
  registerClock();
  setTime();
});

var currentdate;
var stopWatchRunning = false;
var startTime;

function registerClock() {
  setInterval(updateClock, 250);
}

function updateClock() {
  setTime();
  setStopWatch();
}



function setTime() {
  currentdate = new Date();
  var datetime = +currentdate.getDate() + "." +
    (currentdate.getMonth() + 1) + "." +
    currentdate.getFullYear() + " " +
    currentdate.getHours() + ":" +
    currentdate.getMinutes() + ":" +
    currentdate.getSeconds();
  $("#time").text(datetime);
}


$("#startstop").click(function() {
  if (stopWatchRunning == false) {
    startTime = new Date();
    stopWatchRunning = true;
  } else {
    stopWatchRunning = false;
  }
});


function setStopWatch() {
  if (stopWatchRunning == false) {
    return;
  }
  var timeElapsed = currentdate - startTime;
  var duration = new Date(timeElapsed);
  var showDuration = duration.getHours() - 1 + ":" +
    duration.getMinutes() + ":" +
    duration.getSeconds();
  $("#tracker").text(showDuration);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="js/timer_neu.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>


<nav class="navbar navbar-default">
  <div class="container-fluid">
    <div class="navbar-header">
      <a class="navbar-brand" href="#">Stoppuhr</a>
    </div>
  </div>
</nav>
<div class="row">
  <div class="col-md-5">
    <h1>Uhrzeit</h1>
    <h1 id="time">19:53:00</h1>
  </div>

  <div class="col-md-5">
    <h1>Stoppuhr</h1>
    <h1 id="tracker">00:00:00</h1>
  </div>

  <div class="col-md-2">
    <p><button id="startstop" class="btn btn-default">Start/Stop</button></p>
    <div>
    </div>

最佳答案

将 $("#startstop") 点击函数移至文档就绪函数内,如下所示

$(function() {
  registerClock();
  setTime();

  $("#startstop").click(function() {
    //alert('change')
  if (stopWatchRunning == false) {
      startTime = new Date();
      stopWatchRunning = true;
    } else {
      stopWatchRunning = false;
    }
  });
});

关于javascript - 为什么我的按钮无法触发计时器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52215888/

相关文章:

javascript - 如何对具有相似键的数据进行分组?

javascript - maskMoney Jquery 使用追加时的错误

linux - SQLite 中的负日期

javascript - 使用 jQuery 从 JSON 访问数据

javascript - 输入字段 X 更改时启用输入字段 X+1

javascript - Jquery 插件在 URL 中创建不需要的#

javascript - 以本地用户时区显示的 ISO8601 日期时间字符串

javascript - 循环延迟时淡入停止工作

javascript - 限制输入字段的多语言

php - 在 Yii 中设置默认时区