Javascript Firefox在按键时重置变量?

Javascript Firefox在按键时重置变量?,javascript,firefox,Javascript,Firefox,我写了一个小Javascript游戏,它在Google Chrome和Opera上运行良好,但Firefox中有一个奇怪的bug(?)。看起来像是输入/空格重置变量,或者我不知道 以下是游戏本身: 在Firefox中启动球并打碎一些砖块后,如果按enter键或空格键,球将停止(将启动的布尔值设置为false),然后重新启动球,砖块将重置。顺便说一下,如果您检查代码,您可以看到没有任何enter和space键声明。即使是我完全删除任何键盘操作,这个错误仍然存在。有没有解决办法来“修复”这个问题,

我写了一个小Javascript游戏,它在Google Chrome和Opera上运行良好,但Firefox中有一个奇怪的bug(?)。看起来像是输入/空格重置变量,或者我不知道

以下是游戏本身:

在Firefox中启动球并打碎一些砖块后,如果按enter键或空格键,球将停止(将启动的布尔值设置为false),然后重新启动球,砖块将重置。顺便说一下,如果您检查代码,您可以看到没有任何enter和space键声明。即使是我完全删除任何键盘操作,这个错误仍然存在。有没有解决办法来“修复”这个问题,或者有人知道为什么会发生这种情况?我在两天内都没发现,知道发生了什么。。。代码中的变量重置或回滚

我唯一的想法是:

if (started == true) 
{
    ballx += ballmovex;
    bally += ballmovey;
}

//return to the middle of the bat
else 
    ballx = batx + (batw[batc] / 2) - 1; 

“开始”布尔值决定球应该移动还是移回球棒中间。在firefox中,如果按enter键或空格键,球将始终移动回球棒的中间。但是,enter和space必须执行任何操作,但看起来像是重置此布尔值。

单击用于选择难度的按钮之一时,您可以将它们全部设置为
可见性:隐藏
。但是隐藏的可视性并不排除有焦点的东西,显然,特别是有问题的按钮仍然有焦点。点击空格或回车键会触发按钮的点击处理程序,该处理程序执行各种操作,包括重置游戏板


可以通过在隐藏按钮后,单击画布外的某个位置来测试这一点。这将把焦点从按钮上移开,然后空格和回车键将停止做任何奇怪的事情。单击画布不会转移焦点,因为脚本阻止了该事件的默认操作。

我理解为什么我必须在此处放置正确的代码,但我甚至不确定这是代码的错误还是Firefox中的“功能”。我仍然不知道代码的哪一部分应该被修复,因为没有任何输入和空格键盘的代码,但这仍然是做一些事情,这就是问题所在。。。它不应该做任何事情:(@Gaboros,你说
重置一些变量
,也许这意味着你对发生的事情有一个大致的了解。为什么不告诉我们这些变量是什么,然后发布设置或使用它们的代码?用一点代码和我唯一的想法更新,但我不知道为什么重置那个变量这是一个很好的开始。注意,你没有发布代码这会修改
started
,但只修改使用它的代码。但是,现在我们知道
started
在Firefox中按
Enter
Space
键时会变为
false
,超出您的控制范围。
started
是一个“全局”变量吗(即
窗口
对象的成员,而不是用
var
声明的局部变量)?好主意!你完全正确。我从未想过这一点。只需添加“document.getElementById('button1').blur();”解决问题!:)