0

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

我怎么能在 YUI 的上下文中做到这一点?

  1. 我已经尝试过这个 YUI 示例http://developer.yahoo.com/yui/examples/container/keylistener.html

但是在按下退出键时,它会关闭所有面板。

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

1 回答 1

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列表中排除。

于 2012-10-08T15:46:32.487 回答