0

フォーム要素を含むドロップダウン メニューがあります。メニュー要素はに設定されます

display:none 

要素の外側の何かがクリックされたとき...または少なくともそう思いました。

ここに私の小さな機能があります

$(function(){
    $('#loginAcc').click( function(event){
        event.stopPropagation();
        //show
        $('#auth-menu').css('display', 'block');
    });

    $(document).click( function(){
        //hide when click anywhere out the menu
        $('#auth-menu').hide();
    });
})

私が抱えている問題は、要素内をクリックすると閉じてしまうことです。これにより、フォームを完成させることが非常に難しくなり、ほとんど不可能になります。

#loginAcc

クリックされる水平リスト項目であり、

#auth-menu

推測を危険にさらすとしたら、.toggle() が犯人であると考えたいのですが、それはまったくの推測であり、それを再実装する場合、どこから始めればよいかさえわかりません (小鳥が私に言ったとにかく仕様から外されています)。

私が望んでいるのは、#loginAcc リスト項目をクリックすると、#auth-menu が display:block に設定され、#loginAcc または #auth-menu 以外の場所を再クリックした場合にのみ閉じることができるということです。

どんな助けでも素晴らしいでしょう。ありがとう

4

1 に答える 1

2

セレクターを使用しnot()てメニューを除外します。

$(document).not('#auth-menu').click( function(){
    //hide when click anywhere out the menu
    $('#auth-menu').hide();
});
于 2013-08-08T15:48:48.387 に答える