如何检查 jquery 中 div 的显示(无/块)?

发布于 2024-09-25 05:21:26 字数 607 浏览 0 评论 0原文

我正在使用这个,

$("#loginanchor1").click(function (e) {
    e.preventDefault();
    $("#signin_menu1").slideDown("slow");
});
$(document).mouseup(function (e) {
    if ($(e.target).parent("a.loginanchor1").length == 0) {
        //$(".signin").removeClass("menu-open");
        $("#signin_menu1").slideUp("slow");
    }
});

一切正常,但是当显示 signin_menu1 块并且我在 div 内单击鼠标按钮时,div slipsup...我希望在 < 时阻止 mouseup 函数code>signin_menu1 是显示块。所以我想改变条件,例如

if(($(e.target).parent("a.loginanchor1").length==0) &&( //检查 div 的显示)

现在如何检查显示?

I am using this,

$("#loginanchor1").click(function (e) {
    e.preventDefault();
    $("#signin_menu1").slideDown("slow");
});
$(document).mouseup(function (e) {
    if ($(e.target).parent("a.loginanchor1").length == 0) {
        //$(".signin").removeClass("menu-open");
        $("#signin_menu1").slideUp("slow");
    }
});

Everything works fine but what happens is when the signin_menu1 is displayed block and i click my mouse button inside the div the div slidesup... I want mouseup function to be prevented when the signin_menu1 is displayed block. So i thought of changing the condition like,

if(($(e.target).parent("a.loginanchor1").length==0) &&( //check the display of the div)

Now how to check the display?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

公布 2024-10-02 05:21:26

尝试

$(document).mouseup(function (e) {
    var $parent = $(e.target).parent("a.loginanchor1");
    if ($parent.length == 0 && !$("#signin_menu1").is(':visible')) {
        //$(".signin").removeClass("menu-open");
        $("#signin_menu1").slideUp("slow");
    }
});

我对这个问题感到困惑,但是 $("#signin_menu1").is(':visible') 会检查 div 是否可见(display:block)。

添加注释:

您可以尝试检查$(e.target)signin_menu1还是在signin_menu1内代码>.这样做,

$(document).mouseup(function (e) {
    if ($(e.target).is('#signin_menu1') || $(e.target).closest('#signin_menu1').length > 0) { return ; } // do nothing on mouseup
    var $parent = $(e.target).parent("a.loginanchor1");
    if ($parent.length == 0) {
        //$(".signin").removeClass("menu-open");
        $("#signin_menu1").slideUp("slow");
    }
});

try

$(document).mouseup(function (e) {
    var $parent = $(e.target).parent("a.loginanchor1");
    if ($parent.length == 0 && !$("#signin_menu1").is(':visible')) {
        //$(".signin").removeClass("menu-open");
        $("#signin_menu1").slideUp("slow");
    }
});

I'm confused with the problem, but $("#signin_menu1").is(':visible') would check if the div is visible (display:block).

added notes:

you may try to check if the $(e.target) is the signin_menu1 or the is inside signin_menu1. do it like this,

$(document).mouseup(function (e) {
    if ($(e.target).is('#signin_menu1') || $(e.target).closest('#signin_menu1').length > 0) { return ; } // do nothing on mouseup
    var $parent = $(e.target).parent("a.loginanchor1");
    if ($parent.length == 0) {
        //$(".signin").removeClass("menu-open");
        $("#signin_menu1").slideUp("slow");
    }
});
丶情人眼里出诗心の 2024-10-02 05:21:26

您可以使用 jquery 的 :visible 来实现此目的。

You can use jquery's :visible for this.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文