0

我有一些基于 yuimenu 的弹出菜单工作,一般来说,一切都很好。但是,我发现我需要将手放在一个菜单对象上,这样我才能在它被创建后对其进行处理(例如,当页面上发生其他事情时隐藏暴露的菜单)。我可以找到 yuimenu 类的 div,但我需要这个对象,所以我可以(大概)在它上面做一个cfg.setProperty('visibility', 'hidden')或类似的事情。

所以:我怎样才能得到这个对象?我试过YAHOO.widget.Menu(theDivID)了,但结果火了。谢谢!(ps:如果我说这一切都错了,请告诉我!)

4

1 回答 1

0

我已经想出了一种方法来做到这一点,但我不能说我对此非常满意:

  • 声明allTheMenus,一个全局 javascript 变量,用于收集将放置在页面上的所有 yuimenu 项目。

  • 构建页面后,将每个菜单实例推送到此变量/数组上。

  • 当特殊事件发生时(在我的例子中,用户单击一个链接,该链接会弹出一个覆盖对话框 div 以收集一些用户输入),请执行以下操作:

    • 检查页面以查看是否有任何样式可见的 yuimenu 类项(例如,.$('.yuimenu[style*=visible]')...
    • 如果有一个(在我的情况下,可能只有一个;您的情况可能会有所不同),获取它的 ID 并(呃)遍历所有 yuimenu 实例的全局数组并找到具有相同 ID 的那个。
    • this.cfg.setProperty('visible', false)它并跳出循环(再次假设只有一个项目可能是可见的)。

就像我说的——我并不为代码感到自豪,但它确实有效。我希望有人向我展示有更好的方法来做到这一点......

于 2011-05-20T21:07:49.963 回答