Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 隐藏变量==true时可见的元素_Jquery_Conditional Statements - Fatal编程技术网

Jquery 隐藏变量==true时可见的元素

Jquery 隐藏变量==true时可见的元素,jquery,conditional-statements,Jquery,Conditional Statements,能帮我点忙吗 当我点击.toggle menu时,我没有隐藏#overlay menu或#overlay contact,如果它们是:可见的和ovDeskVisible==false if (ovDeskVisible == false && ovMenuVisible) { $('#overlay-menu').hide(); setTimeout(function() { $('#overlay-

能帮我点忙吗

当我点击
.toggle menu
时,我没有隐藏
#overlay menu
#overlay contact
,如果它们是
:可见的
ovDeskVisible==false

if (ovDeskVisible == false && ovMenuVisible) {
            $('#overlay-menu').hide();
            setTimeout(function() {
                $('#overlay-menu').removeClass('appears');
            }, 300 );
        }
if (ovDeskVisible == false && ovContactVisible) {
            $('#overlay-contact').hide();
            setTimeout(function() {
                $('#overlay-contact').removeClass('appears');
            }, 300 );
        }
以下是我的职能:

function toggle_nav_desktop() {
    var ovDeskVisible = false;
    var ovMenuVisible = $('#overlay-menu').is(':visible');
    var ovContactVisible = $('#overlay-contact').is(':visible');

    $('.toggle-menu, .toggle-contact').click(function(e) {
        e.preventDefault();
        ovDeskVisible = !ovDeskVisible;

        if ($('html').attr('lang') == 'fr-FR') {
            $('.toggle-menu h4').text($('.toggle-menu h4').text() == 'Menu' ? 'Fermer' : 'Menu');
        } else {
            $('.toggle-menu h4').text($('.toggle-menu h4').text() == 'Menu' ? 'Close' : 'Menu');
        }

        if (ovDeskVisible == true) {
            $('.icon-menu').addClass('is-opened').removeClass('is-closed');
            $('html').addClass('stop-scrolling');
            $('.circle').addClass('open appears');
        }
        if (ovDeskVisible == false) {
            $('.icon-menu').addClass('is-closed').removeClass('is-opened');
            $('html').removeClass('stop-scrolling');
            $('.circle').removeClass('open appears');
        }
    });

    $('.toggle-menu').click(function(e) {
        e.preventDefault();

        if (ovDeskVisible == true) {
            $('#overlay-menu').show();
            setTimeout(function() {
                $('#overlay-menu').addClass('appears');
            }, 300 );
        }
        if (ovDeskVisible == false && ovMenuVisible) {
            $('#overlay-menu').hide();
            setTimeout(function() {
                $('#overlay-menu').removeClass('appears');
            }, 300 );
        }
        if (ovDeskVisible == false && ovContactVisible) {
            $('#overlay-contact').hide();
            setTimeout(function() {
                $('#overlay-contact').removeClass('appears');
            }, 300 );
        }
    });

    $('.toggle-contact').click(function(e) {
        e.preventDefault();

        if (ovDeskVisible == true) {
            $('#overlay-contact').show();
            setTimeout(function() {
                $('#overlay-contact').addClass('appears');
            }, 300 );
        }
    });
}

当我点击
.toggle menu
时,如何隐藏
#overlay menu
#overlay contact
如果它们是
:可见的
ovDeskVisible==false

不确定这是否有帮助,但尝试将您的点击事件从
$('.toggle contact')更改。点击(函数(e){
$('.toggle contact')。打开('click',函数(e){}

这样做了一次,解决了我的问题。值得一试。

我显然看不到您的其余代码,但您的脚本似乎应该可以工作。您正在初始化文档上的
切换导航桌面()

如果没有,请尝试添加以下内容:

$(document).ready(function() {
    toggle_nav_desktop();
});
如果这没有帮助,你能用你的HTML和所有东西创建一个链接,并共享链接吗

另外,通过使用not(
)运算符和
else
语句,您可以显著简化语句:

if (ovDeskVisible) {
    //ovDeskVisible == true
}
else {
    //ovDeskVisible == false
}

if (!ovDeskVisible && ovMenuVisible) {
    //ovDeskVisible == false
    //ovMenuVisible == true
}
else {
    //ovDeskVisible == true
    //ovMenuVisible == false
}

看起来您必须更清楚地定义您的问题,您想要的是什么,以及什么不符合预期。您是否要求使用更好的模块化方式来组织代码?请在最后提供一个明确的问题,如“是否有方法…”或“我如何做…”。编辑您的问题并将该信息放在列表中这是问题的一部分。另外,请尝试console.log输出该变量的值,查看您得到的信息,并将其作为附加信息发布。如果未捕获或使用该变量的值,请在问题中提及您想知道的原因。这些是等效的。唯一的区别是(
.on>)
允许您使用
.off()