好吧,我正在尝试完成一个项目,唯一阻碍我的是他们要求计时器在点击比赛游戏时开始。计时器在 HTML 文件加载时启动,这不是项目想要的,我尝试了一些方法,但最终卡住了游戏。我希望计时器能够在单击卡片时启动。
var open = [];
var matched = 0;
var moveCounter = 0;
var numStars = 3;
var timer = {
seconds: 0,
minutes: 0,
clearTime: -1
};
//Start timer
var startTimer = function () {
if (timer.seconds === 59) {
timer.minutes++;
timer.seconds = 0;
} else {
timer.seconds++;
};
// Ensure that single digit seconds are preceded with a 0
var formattedSec = "0";
if (timer.seconds < 10) {
formattedSec += timer.seconds
} else {
formattedSec = String(timer.seconds);
}
var time = String(timer.minutes) + ":" + formattedSec;
$(".timer").text(time);
};
这是点击卡片的代码。我尝试在其中包含 startTimer 代码,但不起作用。
var onClick = function() {
if (isValid( $(this) )) {
if (open.length === 0) {
openCard( $(this) );
} else if (open.length === 1) {
openCard( $(this) );
moveCounter++;
updateMoveCounter();
if (checkMatch()) {
setTimeout(setMatch, 300);
} else {
setTimeout(resetOpen, 700);
}
}
}
};
我将这个类代码用于我的 HTML 文件
<span class="timer">0:00</span>
最佳答案
试试这个:https://codepen.io/anon/pen/boWQbe
您所需要做的就是从页面加载时发生的函数中删除 resetTimer()
调用,然后只需在(卡的)onClick
中进行检查即可查看计时器是否已启动。 timer.秒==0 &&timer.分钟==0
。
关于javascript - 单击内存游戏的第一张牌时启动计时器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46458740/