如何设置keylistener来隐藏最顶层的yui面板

时间:2012-05-26 10:48:25

标签: javascript yui

我有两个或更多YUI面板相互重叠。我想关闭最上面的面板,当我按下退出键时。

我如何在YUI的背景下做到这一点?

  1. 我尝试了这个YUI示例http://developer.yahoo.com/yui/examples/container/keylistener.html
  2. 但是在按下退出键时,它会关闭所有面板。

    1. 我也尝试过使用覆盖的OverlayManager和z-index属性,但有时候最上面板的z-index小于下层面板的z-index。

1 个答案:

答案 0 :(得分:0)

面板在转义时隐藏,因为这是默认的小部件设置,请参阅http://yuilibrary.com/yui/docs/api/classes/Panel.html#attr_hideOn

与文档所说的不同,触发事件的节点不是窗口小部件的边界框,而是文档节点,请参阅http://yuilibrary.com/yui/docs/api/files/widget-autohide_js_Widget-Autohide.js.html#l57

尝试覆盖hideOn属性,方法是将窗口小部件的边界框指定为节点。

这样的事情应该有效:

var panel = new Y.Panel({...});
panel.set('hideOn', [{eventName: 'key', keyCode: 'esc', node: panel.get('boundingBox')}]);

我确信它可用于禁用转义,方法是将其从hideOn列表中排除。