Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/454.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/80.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 如何使eventlistener在单击按钮之前不侦听?_Javascript_Html_Button_Tabs_Event Listener - Fatal编程技术网

Javascript 如何使eventlistener在单击按钮之前不侦听?

Javascript 如何使eventlistener在单击按钮之前不侦听?,javascript,html,button,tabs,event-listener,Javascript,Html,Button,Tabs,Event Listener,我正在制作这个游戏,有一个计时器,我有一个eventlistener,当用户改变可见性时,它会警告用户不要离开选项卡。问题是,它在启动游戏的按钮被点击之前工作。在JS中是否有方法阻止eventlistener侦听,直到单击按钮?我尝试循环remove eventlistener,并在单击按钮时停止循环函数,尽管它不起作用。谢谢 <!--This is the button that I want to start the eventlistener--> <button onc

我正在制作这个游戏,有一个计时器,我有一个eventlistener,当用户改变可见性时,它会警告用户不要离开选项卡。问题是,它在启动游戏的按钮被点击之前工作。在JS中是否有方法阻止eventlistener侦听,直到单击按钮?我尝试循环remove eventlistener,并在单击按钮时停止循环函数,尽管它不起作用。谢谢

<!--This is the button that I want to start the eventlistener-->
<button onclick="start1game()" id="startgame">Continue</button>
<script>
document.addEventListener("visibilitychange", function() {
  alert('Please do not leave while playing the game.');
});
</script>

继续
document.addEventListener(“visibilitychange”,函数(){
警惕('玩游戏时请不要离开');
});

没有看到
start1game()
函数声明,我不能确定,但是如果您移动

document.addEventListener("visibilitychange", function() {
  alert('Please do not leave while playing the game.');
});

在您的
start1game()
函数声明(作为第一行)中,在按下按钮之前,侦听器不会被激活。如果这不能解决您的问题,我建议编辑您的问题以包含更多代码,但请记住,我们需要了解问题所需的最少代码。

您没有游戏状态对象吗?您似乎可以保持
visibilitychange
侦听器连接并查询游戏状态对象,查看游戏是否正在运行,如果没有,则忽略事件。