4

ページで div を押すと、ポップアップが表示されます。div をもう一度クリックすると、ポップアップが消えます。div の外側をクリックすると、ポップアップが消えます。

問題は、ポップアップをクリックしたときに、ポップアップとその子がクリック可能になるようにしたいことです (それらは順序付けられていないリスト内のリンクです)。しかし、私はそれを機能させることができないようです。これが私のコードです

        $(function () {
            $('#messageNotification').click(function (event) {
            $("body").one('click', function () {

                jQuery(".userInfo").fadeOut();
            });
            event.stopPropagation();
        });


          <body>
            <div id="messageNotification"><div class="notif same">0</div></div>
            <div id="messages">
                <ul class="userInfo" style="">
                    <li></li>
                </ul>
            </div>

          </body>
4

1 に答える 1

7

私があなたを正しく理解していれば、セレクターでフィルタリングできます。例えば:

$('body').on('click', 'a', function(){ ... });

clickこれにより、セレクターに一致するすべての要素にイベントがバインドされますa

ポップアップに一致しないすべての要素にクリックをバインドする場合は、次のようにすることができます。

$('body').on('click', ':not(#popup)', function(){ // code to dismiss popup here });

詳細については、 :not()および.on()の jquery ドキュメントを参照してください...

于 2012-08-16T15:04:41.047 に答える