Windows Firefox 的 KeyEvent 目标仍然位于隐藏按钮上

发布于 2024-12-27 23:47:46 字数 302 浏览 0 评论 0原文

我有一个 div,表单中有几个按钮。单击其中一个按钮时,该 div 会被隐藏,并会显示一个新的 div。就我而言,我还让按钮单击触发 ajax 调用,以获取一些数据来填充新显示的 div。加载的div是一个游戏,它捕获关键事件以允许玩家玩。

在 Windows 上的 Firefox 中,我注意到所有关键事件都针对在第一个 div 上单击的按钮,而不是 body 元素。这意味着 enter 键会重新单击该按钮(重新启动游戏)。如果我在切换 div 时禁用按钮,则根本不会触发按键事件(使其无法播放)。

处理这种情况的好策略是什么?

I have a div with several buttons in a form. When one of the buttons is clicked, this div is hidden and a new div is displayed. In my case, I am also having the button click trigger an ajax call for some data to populate the newly displayed div. The div that loads is a game that captures key events to allow the player to play.

In Firefox on Windows, I notice that all key events are being targeted at the button that was clicked on the first div, rather than at the body element. This means that the enter key re-clicks that button (restarting the game). If I disable the buttons when I switch divs, key events do not get triggered at all (making it unplayable).

What would a good strategy be to deal with this situation?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

深白境迁sunset 2025-01-03 23:47:46

不确定这是否是我自己问题的答案或解决方法,但看起来我可以调用:

document.activeElement.blur()

我已将其添加到按钮的 onclick 函数中,这似乎可以解决问题。

Not sure if this is an answer to my own question or a workaround, but it looks like I can call:

document.activeElement.blur()

I've added this to my button's onclick function and this seems to solve the problem.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文