私は、以下に示すように、ユーザーがゲームをプレイするときに時計を表示するhtmlコードを持つdivを持っています。機能が実行されないのはなぜですか?
<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.
}
私はこれを実行して、両方の機能にブレークポイントを設定しようとしていて、両方とも実行していないことが分かります。しかし、私がupdateTime()
をbeginGame()
から取り出したとき、または最後に取り出したときclock.innerHTML = displayTime
それは正しく動くことができました(残念ながら、結果は私が望んでいたものではありませんでした)。なぜこれはそうかもしれませんか?私はどこかで構文エラーを作りましたが、それを見つけることはできません。ありがとう。
完全なプログラムのデモはtdat.byethost10.comです。また、ここでは(汚いHTMLのための謝罪)
https://jsfiddle.net/hundotte/vb3je10p/1/
を起こることを意味しているものの作業バージョンがある(作業バージョンはtdat.mygamesonline.orgのように、「開始」を入力すると、ゲームを始めることになっていました)
コードの品質を向上させるためにjslintを使用してください。http://www.jslint.com/ – gurvinder372
コードをインデントしてください。 – Cyclonecode
''私はどこかで構文エラーを作りましたが、それを見つけられないと確信しています。 '' - これはブラウザのデバッグツールのためのものです。パーサーが構文エラーに遭遇している場合は、JavaScriptコンソールで通知されます。さらに、*表示*ではなく*記述*しているコードでは構文エラーを検出できません。 – David