为什么函数不运行

Why does function not run?

本文关键字:运行 函数 为什么      更新时间:2023-09-26

我有一个div,它有html代码,在用户玩游戏时显示时钟,如下所示。

<td onclick="showClock()" id="clockSection">DAY 1</td>

我想让时间在每次满足条件时都会更新(例如,从"第1天"变成"第1晚"或"第2天")。

我为此制作了一个函数updateClock(),它可以正常工作,正如预期的那样。

 function updateTime() {
  if (minutes >= 60) {
    minutes -= 60
    hours += 1
    updateTime()
  } else if (minutes >= 10) {
    minutesDisplay = minutes
  } else {
    minutesDisplay = "0" + minutes
  }
  if (hours >= 13) {
    hours -= 12
    if (dayHalf === "am") {
      dayHalf = "pm"
    } else {
      dayCount += 1
      dayHalf = "am"
      var clockDisplay = document.getElementById("clockSection")
      clockDisplay.innerHTML = displayTime
    }
  }
  if (hours > 6 && dayHalf === "pm") {
    timeEstimate = "Night"
    displayTime = timeEstimate + " " + dayCount
  } else if (hours < 7 && dayHalf === "am") {
    timeEstimate = "Night"
    displayTime = timeEstimate + " " + dayCount
  } else {
    timeEstimate = "Day"
    displayTime = timeEstimate + " " + dayCount
  }
  if (displayTime !== timeEstimate + " " + dayCount) {
    clock.innerHTML = displayTime
  }
  clock.innerHTML = displayTime
}

不幸的是,当我想从我的另一个函数beginGame()(它启动整个游戏,如下所示)中调用updateClock()时,整个beginGame()函数没有运行。

function beginGame(){
    updateTime()
...
    //the rest of my code, which when tested without the above updateTime() has NO PROBLEMS.
}

我试着运行这个并在两个函数中设置断点,结果发现它们都没有运行。然而,当我从beginGame()中取出updateTime()时,或者如果我取出最后一个clock.innerHTML = displayTime,它可以正常运行(不幸的是,结果不是我想要的)。为什么会这样?我确信我在某个地方犯了一些语法错误,但无法发现。谢谢。

完整程序的演示在tdat.byethost10.com上

https://jsfiddle.net/hundotte/vb3je10p/1/

好的。我终于解决了这个问题。这似乎是一个轻微的拼写错误,如果你查看JSFiddle,你会发现它。在beginGame()函数中,我将id设置为"clock"而不是"clockDisplay"。谢谢你们的尝试,伙计们!我真的很感激。