Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.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
Javascript 当第二个div具有类时,将类添加到元素_Javascript_Jquery - Fatal编程技术网

Javascript 当第二个div具有类时,将类添加到元素

Javascript 当第二个div具有类时,将类添加到元素,javascript,jquery,Javascript,Jquery,我有一个Li元素(下拉列表),当单击parentdiv(按钮)时,它会得到一个活动类。当这个元素有这个类时,我想给另一个div同样的类。当再次单击li元素(下拉列表)时,活动类将被删除,然后我还想删除第二个div上的活动类 到目前为止,我得到的是: $('document').ready(function() { if ($('li').hasClass('active')) { $("#site-overlay").addClass("active"); } }

我有一个Li元素(下拉列表),当单击parentdiv(按钮)时,它会得到一个活动类。当这个元素有这个类时,我想给另一个div同样的类。当再次单击li元素(下拉列表)时,活动类将被删除,然后我还想删除第二个div上的活动类

到目前为止,我得到的是:

$('document').ready(function() {
    if ($('li').hasClass('active')) {
        $("#site-overlay").addClass("active");
    }
});

这在控制台中有点用——它为我的第二个div提供了正确的类。但它不能在现场工作,我想我不能直接在pageload上调用它?它也不会删除类。

您当前的示例没有在
LI
元素上设置
active
类,因此不会发生任何情况,但它应该是这样工作的:

$('li').on('click', function(){
    if($(this).hasClass('active')) {
       $("#site-overlay").addClass("active");
    } else {
       $("#site-overlay").removeClass("active");
    }
});
$(function () {
    $('ul.megamenu > li').on('click', function () {
        $("#site-overlay").toggleClass("active", $(this).hasClass('active'));
    });
});
toggleClass
可以采用第二个布尔参数,该参数根据真/假值控制打开/关闭类

注意:我黑了下面的JSFIDLE只是为了显示一些有用的东西(单击只是暂时切换站点覆盖状态):


请显示处理单击的其余代码。正如您所猜测的,在页面加载时设置一次是没有用的:)这是很多代码。。但它是在这个小提琴:然后简化代码请添加更多的代码。。我们还需要完整的html。。您正在调用的代码是在dom上准备好的…应该在“div(button)click”上调用它。而且fiddle链接也没有帮助。。代码(上面提到的)甚至不存在!我没有在示例的
LI
元素上看到
active
类。你能确认代码的哪一部分应该设置那个类吗?是的,它工作不正确。我不能把小提琴当作活生生的例子。您可以在这里看到:shop.xeptor.se。我不希望它切换到点击,因为覆盖应该显示时,子菜单是活跃的。在你的例子中。你点击菜单项一个覆盖显示。如果单击“下一个菜单项”,即使子菜单显示,它也会再次隐藏覆盖@真的,这似乎是可行的!我得到的功能未定义尝试这个控制台虽然@尼古拉·阿万西尼