2011-04-04 31 views
0

我有一個頁面上有一些小部件,每個小部件點擊後都會彈出一個yui彈出菜單:如果我點擊小部件1,它的菜單就會出現。如果我現在點擊窗口小部件2,窗口小部件1的菜單會獲得一個隱藏事件,而窗口小部件2的菜單會顯示一個顯示事件並出現。我想改變它,這樣,當小部件1的菜單啓動時,必須在菜單附加之前通過點擊頁面背景(和/或可能另外點擊小部件或退出鍵)來明確地解除它允許小部件2出現。如何要求顯式解除yui彈出式菜單?

我在菜單上設置了一些beforeShowEvent和beforeHideEvent處理程序,希望能夠使用某些方法(全局變量?ick)跟蹤菜單何時出現並相應地顯示或隱藏,但它是不工作 - 這些處理程序無法區分點擊頁面背景和點擊widget 2(至少不是我迄今爲止所做的)。有沒有辦法做我想做的事情?謝謝!

+0

YUI 2或YUI 3?哪個小部件? 「彈出式菜單」不明確。 – 2011-04-04 17:53:18

+0

對不起 - YUI 2;彈出窗口是YAHOO.widget.Menu的實例。 – 2011-04-04 18:09:37

回答

1

認爲clicktohide: false

布爾指示是否當用戶點擊它外面的菜單會自動隱藏的組合。該屬性僅適用於「位置」配置屬性設置爲動態時自動應用於所有子菜單。

keepopen: true

布爾值,表示如果點擊時的菜單應該保持開放。

會照顧到這一點。

http://developer.yahoo.com/yui/menu/#configref

+0

這是一個步驟:clicktohide絕對有幫助;我已經在做開放了。但是,除了菜單1之外,這些本身不會阻止點擊widget 2啓動菜單2.我現在擁有的是(a)beforeShowEvent處理程序將global設置爲true,表示菜單可見, (b)beforeHideEvent處理程序將其清除,並且(c)addListener調用調用一個函數來檢查該全局的狀態,並且僅在全局爲false時才顯示菜單。有點不好意思,但很接近:這讓菜單2不再出現,但是我不能讓菜單1在選擇後離開。需要更多的工作... – 2011-04-04 19:29:15

+0

我想我現在已經知道了:addListener調用的函數需要在點擊小部件後隱藏菜單,而且我需要一個clickEvent處理程序來在菜單項點擊後隱藏菜單。有點醜,但它似乎在工作。感謝您的幫助(您不應該爲任何醜陋而責備)! – 2011-04-04 19:48:14