0

我一直在 stackoverflow 阅读一些问题,关于如何在没有插件的情况下使用 jQuery 在外部单击时关闭菜单。

我尝试使用event.stopPropagation()但无法正常工作。你能告诉我如何在下一个代码中使用它,并解释为什么在你的代码中工作吗?

这是我网页中的原始代码,我希望它执行相同的功能,并在外部单击时将其关闭此处为完整代码):

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

HTML 代码(第一个 div 只是用户点击的链接,当他们点击时,第二个 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是一个与所有链接一起使用的类,我想从那里打开一个弹出窗口。在这种情况下,弹出窗口是第二个 div,带有 IDtopbar-user-actions

如果你还是不明白,请看这张图:

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

提前致谢。

4

2 回答 2

0

尝试这个。

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

有一些事情,但这会工作

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

我的印象是,当用户单击页面上的其他任何位置时,您希望关闭该锚点。

于 2013-02-26T20:23:27.073 回答