gpt4 book ai didi

javascript - 当输入元素获得焦点时,如何禁用 YAHOO.util.KeyListener?

转载 作者:行者123 更新时间:2023-11-28 10:36:23 26 4
gpt4 key购买 nike

我有一个菜单栏设置 YUI's MenuBar小部件,并且我在文档上附加了一个 YAHOO.util.KeyListener 来快速通过键盘访问菜单和子菜单项(例如,使用 's' 打开设置菜单)。问题是当用户位于输入元素中时,keylistener 仍然会触发。例如,用户可能在文本字段中输入“soup”,“s”字符将导致“设置”菜单弹出。

一种解决方案是当焦点位于输入元素上时禁用keylistener,并在模糊时启用它。我该怎么做呢?有更好的解决办法吗?

最佳答案

我赞扬您尝试提供键盘快捷键,但请注意,这对于实现跨平台来说会有点痛苦。如果可行,我强烈建议在 <a> 标签上使用 access keys

如果您仍然继续,我想 accesskey 对您不起作用。我假设您已经阅读了 the relevant YUI tutorial

如果 blurfocus 确实是正确的方法,我会使用类似的东西

YAHOO.util.Event.onDOMReady(init);
function init() {
// set up the keyboard listeners

setUpExceptionsToKeyboardShortcuts();
}

function disableShortcuts() {
// Do what you've got to do
}

function enableShortcuts() {
// Do what you've got to do
}

function setUpExceptionsToKeyboardShortcuts() {
var focusable = document.getElementsByTagName('input');
focusable = focusable.concat(document.getElementsByTagName('select'));
focusable = focusable.concat(document.getElementsByTagName('textarea'));
YAHOO.util.Event.addListener(focusable, 'focus', disableShortcuts);
YAHOO.util.Event.addListener(focusable, 'blur', ensableShortcuts);
}

关于javascript - 当输入元素获得焦点时,如何禁用 YAHOO.util.KeyListener?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/155445/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com