2011-05-19 69 views
0

我有一些基於yuimenu的彈出菜單工作,一般來說,一切都很好。但是,我發現我需要將手放在菜單對象上,以便在創建菜單對象後對其進行處理(例如,在頁面上發生其他事情時隱藏已顯示的菜單)。我可以找到類yuimenu的div,但我需要的對象,所以我可以(大概)做一個cfg.setProperty('visibility', 'hidden')或類似的東西。創建yuimenu對象後如何獲取?

所以:我怎樣才能得到這個對象?我已經試過YAHOO.widget.Menu(theDivID),但是火焰已經消失了。謝謝! (ps:如果我對這一切都有錯,請告訴我!)

回答

0

我已經想出了一個辦法,但我不能說我很滿意它:

  • 聲明allTheMenus,一個全局JavaScript變量,用於收集將放置在頁面上的所有yuimenu項目。

  • 構建頁面時,將每個菜單實例推送到該變量/數組上。

  • 當特別事件發生(在我的情況下,帶來了一個覆蓋對話框div來收集一些用戶輸入一個鏈接,用戶點擊),請執行下列操作:

    • 檢查頁,查看如果有任何風格可見的類yuimenu項目(例如,$('.yuimenu[style*=visible]')...
    • 如果有一個(在我的情況下,只能有一個,你的情況可能會有所不同),得到它的ID和(呃)循環遍歷找到所有具有相同ID的全局數組。
    • 執行this.cfg.setProperty('visible', false),並從循環中退出(再次假設只有一個可見的項目)。

就像我說 - 我不是代碼的驕傲,但它的工作。我會喜歡有人向我展示有更好的方式來做到這一點...