2

UL 要素を使用してメニューを作成し、jQueryUI を使用してこのメ​​ニューを表示しています。

<ul style="display:none" id="action_menu" class="menu">
    <li><a href="javascript:alert(213112);">Edit Translation</a></li>
    <li><a href="javascript:void(0);">Edit Comment</a></li>
    <li><a href="javascript:void(0);">Edit Bind</a></li>
    <li><a href="javascript:void(0);">Edit Reuse</a></li>
    <li><a href="javascript:void(0);">Edit Sync Up</a></li>
    <li><a href="javascript:void(0);">Export</a></li>
    <li><a href="javascript:void(0);">Show History</a></li>
    <li><a href="javascript:void(0);">Upload Screenshot</a></li>
</ul>

ボタンをクリックすると、$("#action_menu").menu() でこのメニューを表示できます。このメニューを表示する方法を知っていますが、メニューをクリックしないで他の場所をマウスでクリックしたときにこのメニューを非表示にする方法がわかりません。非常に多くの例が見つかりました。ドキュメント クリック リスナーを追加し、イベント ターゲットの親ノードがこのメニューであるかどうかを確認します。このリンクのように、ドロップダウン メニューを非表示にする jQueryのように、誰もがより良い考えを持っていますか?なぜ jQueryUI がメニュー ウィジェットのイベントやオプションを追加しないのか疑問に思っています。誰か助けて、ありがとう

4

1 に答える 1

1

これは一般的な解決策です。プラグインについてはわかりません

$(document).click(function (e)
{
    var container = $(".menu");

    if (container.has(e.target).length === 0)
    {
        container.hide();
    }
});
于 2012-11-08T08:19:59.790 に答える