如何捕获关闭YUI菜单的转义键?

时间:2012-03-29 03:23:01

标签: yui yui-menu

我正在使用YUI菜单做一些事情,基本上工作正常。当我通过键盘上的按钮提升菜单时,我会对某些DIV进行一些着色以创建特定的菜单效果。再次单击该按钮将关闭菜单并取消着色,一切顺利。

我的问题是,按下转义键也会关闭菜单,但是没有运行undo-the-coloring代码,所以我最终在屏幕上留下了一些剩余的gunk。如何捕获转义键以便我可以在现在删除的菜单后运行一些代码来清理?谢谢!

1 个答案:

答案 0 :(得分:0)

无论如何,这是一种方式:

如果您正在执行此操作,您将在某处构建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,如果是,则调整小部件的背景颜色。欢迎提出其他建议,但目前这对我有用。