0

プラグインなしで jQuery を使用して外側をクリックしたときにメニューを閉じる方法について、stackoverflow でいくつかの質問を読んでいます。

使用しようとしましたが、機能しevent.stopPropagation()ていません。次のコードでそれを使用する方法を教えてください。また、なぜあなたのコードで機能するのか説明していただけますか?

これは私のウェブページの元のコードです。同じ機能を実行し、外側をクリックすると閉じます完全なコードはこちら):

$('.open-popup-on-click').unbind('click').click(function() {
    $('#' + $(this).data('popup-id')).toggleClass('hidden');
    return false;
});

HTML コード (最初の div はユーザーがクリックする単なるリンクであり、ユーザーがクリックすると、2 番目の div がポップアップとして開きます):

<div class="topbar-block topbar-profile-options">
  <a class="open-popup-on-click"
    data-popup-id="topbar-user-actions"
    href="/cuenta"><%=avatar_img(@user, :very_small)%></a>
</div>

<div id="topbar-user-actions" class="hidden popup">
  <div style="float: left"><a href="/miembros/<%=@user.login%>"><%=avatar_img(@user, :normal)%></a></div>
  <ul style="display: inline-block">
    <li><a href="/cuenta">mi cuenta</a></li>
    <li><a href="/cuenta/clanes">mis clanes</a></li>
    <li><a href="/cuenta/competiciones">mis competiciones</a></li>
    <li style="padding-top: 20px; padding-bottom: 20px;"><a href="/miembros/<%=@user.login%>">mi perfil público</a></li>
    <li><a class="confirm-click nav" href="/cuenta/logout">cerrar sesión</a></li>
  </ul>
</div>

open-popup-on-clickポップアップを開きたい場所から、すべてのリンクで使用されるクラスです。この場合、ポップアップは ID を持つ 2 番目の div です。topbar-user-actions

それでもわからない場合は、次の画像を見てください。

http://i281.photobucket.com/albums/kk205/LEANDRO351/Gamersmafia/exampleMenu.png

前もって感謝します。

4

2 に答える 2

0

いくつかありますが、これでうまくいきます

           $('body').click(function(event){
                 $('.open-popup-on-click').not(':hidden').toggle();
             });

私の印象では、ユーザーがページの他の場所をクリックしたときにそのアンカーを閉じたいと考えています。

于 2013-02-26T20:23:27.073 に答える
0

これを試して。

$(document).on('click',function(event){
          $('#topbar-user-actions').hide();
       });
于 2013-02-26T21:04:05.550 に答える