問題タブ [yui-menu]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
196 参照

yui - 実行時にYUIメニューからドロップシャドウを削除するにはどうすればよいですか?

ドロップシャドウを削除したいメニューボタンがあります。最初にメニューオブジェクトをインスタンス化する必要はありませ(それをアタッチするためにDOMでdivを指定する必要があるため)。JSでメニューをインスタンス化することはできますが、次の方法でドロップシャドウを削除しようとすると、this.menuButton.getMenu().cfg.setProperty('shadow', false);ドロップシャドウが表示されたままになります。JSデバッガーでcfgオブジェクトを確認し、シャドウがfalseに設定されていますが、シャドウは引き続き表示されます。

もう1つのオプションは、シャドウdivをdomから削除することですが、それは正しいことではないようです。

0 投票する
1 に答える
230 参照

jquery - ajaxページの挿入後にyuiメニューの位置を更新するには?

たくさんのアイテムが掲載されたページがあります。各項目にはウィジェットがあり、クリックすると YUI ポップアップ スタイルのオプション メニューが表示されます。これまでのところ、これはうまく機能しています。

jQuery/ajax 呼び出しを使用して新しいアイテムをページに挿入し、既存のアイテムを押し下げています。アイテムは正しく挿入されていますが、アイテムを呼び出すウィジェットの新しい位置と一致するように、アイテムのポップアップ メニューの位置を更新する必要があります。私が知る限り、それらはページ座標として計算され、ページがレンダリングされるときにメニュー オブジェクトと共に保存され、ajax 挿入によって自動的に更新されません。

これが私の問題です: メニューごとにメニュー項目を再計算し、removeListener() を実行して古いメニューを強制終了し、addListener() を実行して新しいものを挿入する jQuery を試しました。これにより、メニューが呼び出されたときにメニューの位置が適切に更新されますが、他の何かが壊れます。ウィジェットをクリックしてメニューを表示し、ページの別の場所をクリックすると、メニューが消えるのではなく画面に残ります。他のウィジェットをクリックすると、それらも表示されます。注: コンソールにエラーは表示されません。メニューの表示中に ESCAPE キーを押すと、メニューが正しく非表示になります。

これを行う方法があるはずですが、迷っています。手がかりはありますか?おそらく、メニューのコンテキスト情報を更新するだけで十分です。私を台無しにしているように見える削除と追加のリスナーシーケンスなしでそれを行う方法はありますか? ありがとう!

0 投票する
3 に答える
1245 参照

jquery - ウェブサイト ナビゲーション用の jQuery ベースの YUI スタイル メニュー

過去に Web サイトのナビゲーションにYUI Menuを使用したことがあり、ビューポート サイズの検出など、あらゆる種類のケースを処理できることに感銘を受けました。現在のプロジェクトは jQuery を中心にしていますが、同等の優れたメニュー システムがあるかどうか疑問に思っています。 jQuery用。Web 検索では、この特定の質問に対する答えは見つかりませんでした。

私が探しているYUIメニューの具体的なこと:

  • ドキュメント内のネストされたリスト マークアップからメニューを作成します ( <ul>)
  • スタイリングがかなり簡単です(サイトに合わせて)
  • プログレッシブエンハンスメント
  • サブメニューインジケーターあり
  • サブメニューをレンダリングするときにビューポートを認識します (画面内に保持し、スクロールします)

YUI サイトからの 2 つの例:

0 投票する
0 に答える
229 参照

jquery - YUI メニューの jQuery 置換 -> メニュー失敗

とりわけ、単純な YUI メニューを含む div があります。これは、div 内のウィジェットに関連付けられたポップアップです。メニューのアクションの 1 つは、サーバーへの ajax 呼び出しを行う JavaScript 関数を呼び出し、DIV の新しいコンテンツを取得し、DIV の古いコンテンツを新しいものに置き換えます。これにはメニューが含まれます。この置換は、置換後にメニューが壊れていることを除いて、基本的に正常に機能しています。ウィジェットをクリックすると表示され、メニュー項目は引き続き選択できます (そして、それらのアクションは正しく行われます)。ただし、メニュー項目の強調表示はメニューの外側をクリックしたり、エスケープ キーを押したりしても、メニューがクリアされなくなりました。メニューは、死んだ魚のように画面上に横たわっているだけです。ページを更新して非表示にする必要がありますが、その後は (もちろん) すべて問題ありません。

問題は何ですか?サーバーから返されたコードには、メニューを作成し、ウィジェットとメニューを接続するリスナーを設定する YUI JavaScript が含まれています。また、console.log へのいくつかの呼び出しにより、コードがそこにあり、ajax の一部として実行されることが確認されます。置換。これは私をちょっと夢中にさせています...ありがとう!

0 投票する
1 に答える
321 参照

events - yuiポップアップメニューの明示的な却下を要求するにはどうすればよいですか?

いくつかのウィジェットを含むページがあり、それぞれをクリックすると、yui ポップアップ メニューが表示されます。ウィジェット 1 をクリックすると、そのメニューが表示されます。ここでウィジェット 2 をクリックすると、ウィジェット 1 のメニューが非表示イベントを取得し、ウィジェット 2 のメニューが表示イベントを取得して表示されます。これを変更して、ウィジェット 1 のメニューが表示されているときに、メニューがアタッチされる前に、ページの背景をクリックして (および/または、ウィジェットまたはエスケープ キーをもう一度クリックして) 明示的に閉じる必要があるようにします。ウィジェット 2 への表示が許可されます。

メニューがいつ表示され、それに応じて表示または非表示になるかを追跡する何らかのメソッド (グローバル変数? ick) を使用できるようにすることを期待して、メニューに beforeShowEvent および beforeHideEvent ハンドラをいくつか設定しましたが、機能していません -これらのハンドラーは、ページの背景をクリックしたときとウィジェット 2 をクリックしたときの違いを区別できません (少なくとも、私がこれまで行ったことはありません)。私がやろうとしていることをする方法はありますか?ありがとう!

0 投票する
1 に答える
50 参照

jquery - 作成後にyuimenuオブジェクトにアクセスするにはどうすればよいですか?

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

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

0 投票する
1 に答える
55 参照

yui - YUI MenuButton は、最初に表示されたときに巨大です

AJAX 呼び出しを介して遅延ロードされる YUI (2.8.x) MenuButton があります。一度に表示されるアイテムの数を制限するために特別なことはしていません。アイテムが最初にロードされると、それらに合わせてページを拡張する必要がある場合でも、それらはすべて表示されますが、その後表示するたびに、メニューはビューポートにサイズ制限され、上下のスクロール矢印が表示されます. 最初のクリックでその動作を強制する方法はありますか?

0 投票する
1 に答える
252 参照

yui - YUIメニューを閉じるエスケープキーをキャッチするには?

私は基本的に正常に動作している YUI メニューでいくつかの作業を行っています。ボタンをキークリックしてメニューを開くと、特定のメニュー効果を作成するためにいくつかの DIV に色を付けます。ボタンをもう一度クリックすると、メニューが閉じられ、色付けが元に戻されます。すべて問題ありません。

私の問題は、エスケープ キーを押すとメニューも閉じますが、色付けを元に戻すコードを実行しないため、画面にガンクが残ってしまうことです。削除されたメニューの後にクリーンアップするコードを実行できるように、エスケープ キーの押下をトラップするにはどうすればよいですか? ありがとう!