Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/417.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 对addEventListener()使用setTimeout_Javascript_Html_Css - Fatal编程技术网

Javascript 对addEventListener()使用setTimeout

Javascript 对addEventListener()使用setTimeout,javascript,html,css,Javascript,Html,Css,如果玩家在5秒内没有单击元素,我试图让我的程序调用gameOver()函数。我让javascript监听一个click事件,并将数据推送到另一个函数handleClick()(该函数只检查序列是否正确)。我不确定是否要添加超时,因此如果用户在5秒内没有单击,我将调用另一个名为gameOver()的函数 tileCon是我的index.html中可单击元素的容器 我想我必须创建一个单独的函数,但我不确定如何实现它 const button=document.querySelector(“.cli

如果玩家在5秒内没有单击元素,我试图让我的程序调用gameOver()函数。我让javascript监听一个click事件,并将数据推送到另一个函数handleClick()(该函数只检查序列是否正确)。我不确定是否要添加超时,因此如果用户在5秒内没有单击,我将调用另一个名为gameOver()的函数

tileCon是我的index.html中可单击元素的容器


我想我必须创建一个单独的函数,但我不确定如何实现它

const button=document.querySelector(“.clickme”)
让计时器
函数timerStart(){
计时器?清除超时(计时器):“”;
定时器=设置超时(gameOver,5000)
console.log(“单击”)
}
函数gameOver(){
控制台日志(“游戏结束”)
}
按钮。addEventListener('click',timerStart)
。单击我{
高度:2em;
宽度:6雷姆;
背景:蓝色;
}

单击我
您可以尝试以下操作

const button=document.querySelector(“.clickme”)
让计时器
函数timerStart(){
计时器?清除超时(计时器):“”;
定时器=设置超时(gameOver,5000)
console.log(“单击”)
}
函数gameOver(){
控制台日志(“游戏结束”)
}
按钮。addEventListener('click',timerStart)
。单击我{
高度:2em;
宽度:6雷姆;
背景:蓝色;
}

单击我
您可以使用这段代码:

释放;
让isGameStarted=false;
const output=document.getElementById('output');
函数startOrContinueGame(){
如果(!isGameStarted){
isGameStarted=true;
超时=设置超时(gameOver,5000);
output.innerHTML=“游戏已开始!”;
}否则{
clearTimeout(超时);
超时=设置超时(gameOver,5000);
output.innerHTML=“游戏仍在运行。”;
}
}
函数gameOver(){
如果(超时){
clearTimeout(超时);
} 
isGameStarted=false;
output.innerHTML=“游戏结束!”;
}
点击我

游戏尚未开始。
您可以使用以下代码:

释放;
让isGameStarted=false;
const output=document.getElementById('output');
函数startOrContinueGame(){
如果(!isGameStarted){
isGameStarted=true;
超时=设置超时(gameOver,5000);
output.innerHTML=“游戏已开始!”;
}否则{
clearTimeout(超时);
超时=设置超时(gameOver,5000);
output.innerHTML=“游戏仍在运行。”;
}
}
函数gameOver(){
如果(超时){
clearTimeout(超时);
} 
isGameStarted=false;
output.innerHTML=“游戏结束!”;
}
点击我

游戏尚未开始。
在什么的5秒内?第一次点击,整个游戏的初始化,…?自第一次点击后的5秒,您是否尝试创建一个超时,如果点击元素,您只需使用ClearTimeOut在5秒内清除超时?第一次点击,整个游戏的初始化,…?自第一次点击后5秒,您是否尝试创建超时,如果单击元素,您只需使用clearTimeout清除超时
tileCon.addEventListener('click', e => {
const { tile } = e.target.dataset;
if (tile) handleClick(tile);
});