0

いくつかのyuimenuベースのポップアップメニューが機能していますが、一般的に言って、すべてうまくいっています。ただし、メニューオブジェクトを手に入れて、作成後に何かを実行できるようにする必要があることがわかりました(たとえば、ページで何か他のことが起こったときに、公開されたメニューを非表示にします)。クラスyuimenuのdivを見つけることができますが、オブジェクトが必要なので、(おそらく)それに対してcfg.setProperty('visibility', 'hidden')または同様のことを行うことができます。

だから:どうすればこのオブジェクトを取得できますか?私は試しましYAHOO.widget.Menu(theDivID)たが、それは炎上しました。ありがとう!(ps:私がこれについてすべて間違っている場合は、私に知らせてください!)

4

1 に答える 1

0

これを行う方法を見つけましたが、とても満足しているとは言えません:

  • allTheMenus,ページに配置されるすべての yuimenu アイテムを収集するためのグローバルな JavaScript 変数を 宣言します。

  • ページが構築されると、各メニュー インスタンスがこの変数/配列にプッシュされます。

  • 特別なイベントが発生した場合 (私の場合、ユーザー入力を収集するためにオーバーレイ ダイアログ div を表示するリンクをクリックしたユーザー)、次の手順を実行します。

    • ページをチェックして、スタイルが表示されるクラス yuimenu の項目があるかどうかを確認します (例: .$('.yuimenu[style*=visible]')...
    • 1 つある場合 (私の場合は 1 つしかない可能性があります。状況は異なる場合があります)、その ID を取得し、(うーん) すべての yuimenu インスタンスのグローバル配列をループして、同じ ID を持つものを見つけます。
    • this.cfg.setProperty('visible', false)それを実行して、ループから抜け出します (ここでも、表示されるアイテムが 1 つだけであると仮定します) 。

私が言ったように、私はコードを誇りに思っていませんが、動作しています. 誰かがそれを行うためのより良い方法があることを私に示してくれるのが大好きです...

于 2011-05-20T21:07:49.963 に答える