我正在用 YUI 菜单做一些事情,基本上工作正常。当我通过一个按钮上的键单击来提升菜单时,我会对一些 DIV 进行一些着色以创建特定的菜单效果。再次单击该按钮将关闭菜单并撤消着色,一切都很好。
我的问题是按下退出键也会关闭菜单,但没有运行撤消着色代码,所以我最终会在屏幕上留下一些剩余的垃圾。我怎样才能捕捉到退出键的按下,以便在现在删除的菜单之后运行一些代码来清理?谢谢!
无论如何,这是一种方法:
如果您这样做,您将在某处有一些代码构建 YAHOO.widget.Menu,呈现它,并可能将一些侦听器附加到小部件上,单击时会显示菜单。在该代码中,我添加了以下内容:
var escapeWatcher = function(e) {
var the_key = e.keyCode;
if (the_key == 27) {
$('#widgetholder').css({ 'backgroundColor' : 'transparent' }); }
};
YAHOO.util.Event.addListener('widgetholder', 'keydown', escapeWatcher);
换句话说:将 keydown 侦听器附加到小部件,当按键被击中时它会运行 escapeWatcher。该函数检查按下的键是否为 Escape,如果是,则调整小部件的背景颜色。欢迎其他建议,但这目前对我有用。