0

我确实有关于 $(document).click 的问题。

我目前正在处理的页面顶部有一个用户栏。右上角是一个框,其中包含当前登录用户的用户名。单击它会打开一个包含注销、我的个人资料等的对话框。基本上是一些链接,就像 Facebook 一样。

您可以通过再次单击该框或单击文档 ($(document).click) 来关闭此弹出窗口。

它在 Chrome 上运行良好,但 Firefox 存在一些问题。Firefox 将框本身解释为“文档”,并在我单击框后立即关闭。这很愚蠢,因为我确实有链接,但我无法点击它们,因为 FF 正在关闭点击框。

知道如何找到解决方法吗?

编辑:一些代码

$(文档).ready(函数() {

/*
***** user options popup *****
*/

$("#userputrigger").click(function() {
    if ($("#userpopup").length > 0)
    {
        $("#userpopup").remove();
        $(".arrop").attr("src","/img/arrowd.png");
        $('#userputrigger').attr("title", "Show options");
        $(".pass").toggleClass("act");
    }
    else
    {
        $(".ui").append('<div id="userpopup"><div class="options"><table cellpadding="0" cellspacing="0"><tr><td class="icon"><img src="img/user.png" width="16" height="16" alt="My profile" /></td><td><a href="#">My profile</a></td></tr><tr><td class="icon"><img src="img/settings.png" width="16" height="16" alt="Settings" /></td><td><a href="#">Settings</a></td></tr><tr><td class="icon"><img src="img/calendar.png" width="16" height="16" alt="Watchlist" /></td><td><a href="#">Watchlist</a></td></tr><tr><td class="icon"><img src="img/prizeicon.png" width="16" height="16" alt="My contests" /></td><td><a href="#">My contests</a></td></tr><tr><td class="icon"><img src="img/music.png" width="16" height="16" alt="My beats" /></td><td><a href="#">My beats</a></td></tr><tr><td class="icon"><img src="img/coins.png" width="16" height="16" alt="Balance" /></td><td><a href="#">Balance</a></td></tr><tr class="last"><td class="icon"><img src="img/logout.png" width="16" height="16" alt="Logout" /></td><td><form action="" method="post"><input type="submit" value="Logout" /><input type="hidden" name="logout" value="1" /></form></td></tr></table></div></div>');
        $(".pass").toggleClass("act");
        $(".arrop").attr("src","/img/arrowuact.png");
        $('#userputrigger').attr("title", "Hide options");
    }
    return false;
});

$('#userpopup').click(function(e) {
    e.stopPropagation();
});

$(document).click(function() {
    if ($('#userpopup').is(':visible'))
    {
        $(".arrop").attr("src","/img/arrowd.png");
        $("#userpopup").remove();
        $(".pass").toggleClass("act");
        $('#userputrigger').attr("title", "Show options");
    }
});

});

它实际上适用于链接,但不适用于提交按钮“注销”。它只是在 Firefox 上关闭。

谢谢 :)

4

1 回答 1

2

假设您单击带有“设置”类的 div。以下将阻止文档点击传播。

$('.settings').click(function(e) {
   e.stopPropagation();

   ...your stuff here...
});
于 2012-12-04T23:52:43.193 回答