三重';或';javascript中的条件函数未按预期运行

三重';或';javascript中的条件函数未按预期运行,javascript,conditional-statements,Javascript,Conditional Statements,我试图隐藏#clientsdiv,如果三个#-Content其他div中的任何一个可见 $('#PE-Content').hide(); $('#OPS-Content').hide(); $('#NHS-Content').hide(); $('#indic_1').hide(); $('#PE').click(function () { $('#indic_1').toggle(400); $('#PE-Content').

我试图隐藏
#clients
div,如果三个
#-Content
其他div中的任何一个可见

$('#PE-Content').hide();
    $('#OPS-Content').hide();
    $('#NHS-Content').hide();
    $('#indic_1').hide();


    $('#PE').click(function () {
        $('#indic_1').toggle(400);
        $('#PE-Content').toggle(400);
        $('#OPS-Content').hide();
        $('#NHS-Content').hide();
        $('html, body').animate({
        scrollTop: $("#PE").offset().top
    }, 2000);
    });

    $('#OPS').click(function () {
        $('#OPS-Content').toggle(400);
        $('#PE-Content').hide();
        $('#NHS-Content').hide();
        $('html, body').animate({
        scrollTop: $("#OPS").offset().top
    }, 2000);
    });

    $('#NHS').click(function () {
        $('#NHS-Content').toggle(400);
        $('#PE-Content').hide();
        $('#OPS-Content').hide();
        $('html, body').animate({
        scrollTop: $("#NHS").offset().top
    }, 2000);
    });


    if ($('#NHS-Content').is(':visible') || $('#PE-Content').is(':visible') || $('#OPS-Content').is(':visible')) {
        $('#clients').hide();
    } else  {
        $('#clients').show();
    };
由于某些原因,
#clients
div没有隐藏

欢迎有任何想法

html:

<div id="NHS"></div>
<div id="PE"></div>
<div id="OPS"></div>


<div id="NHS-Content"></div>
<div id="PE-Content"></div>
<div id="OPS-Content"></div>

<div class="row" style="margin-top:20px; margin-bottom:20px;" id="clients">
    <?php include ('include/clients.php'); ?>
</div> 

有两个问题:

  • 除了在初始页面加载时,您的代码从未被调用。您需要从更改正在检查的项目可见性的单击事件中调用它
  • 你的开关上有一个计时器,所以你隐藏/显示的项目不会立即隐藏/显示。。。但是检查它是否可见应该在完成之前完成。您应该使用切换上的回调来调用代码检查可见性

  • 如果您感兴趣,我在本例中对您的代码进行了大量清理(从41行到21行),对dom做了一些小的更改:


    你的html是什么样子的?对我来说似乎很好。。。我不使用3个选项,而是使用一个
    $(“#NHS内容,#PE内容,#OPS内容”)。是(“:可见”)
    可以正常工作:
    $('#NHS').click(function () {
        $('#NHS-Content').toggle(400, foo);
        ...
    function foo() {
        if ($('#NHS-Content').is(':visible') || $('#PE-Conten ...