Javascript 简单的jQuery切换到$(“html,body”).css({quot;overflow";:“hidden";});打开时,然后切换到;卷轴;关闭时

Javascript 简单的jQuery切换到$(“html,body”).css({quot;overflow";:“hidden";});打开时,然后切换到;卷轴;关闭时,javascript,jquery,css,Javascript,Jquery,Css,切换的工作原理与您预期的一样,它是通过将类附加到要打开的元素来实现的。正如你可能在下面所说: 问题是。。你可能可以从我的尝试中看出,我有三个元素可以打开和关闭切换,单击.isilnk,.isi\uu wrapper,和。isi\uu expander,我只是试图设置元素何时展开或是否打开。例如,if($(“.isi”).hasClass(“isi--show isi”){只需将overflow:hidden设置为html,body,当它关闭或未打开或上面没有类时,只需设置html,body{ov

切换的工作原理与您预期的一样,它是通过将类附加到要打开的元素来实现的。正如你可能在下面所说:

问题是。。你可能可以从我的尝试中看出,我有三个元素可以打开和关闭切换,单击
.isilnk
.isi\uu wrapper
,和
。isi\uu expander
,我只是试图设置元素何时展开或是否打开。例如,
if($(“.isi”).hasClass(“isi--show isi”){
只需将
overflow:hidden
设置为
html,body
,当它关闭或未打开或上面没有类时,只需设置
html,body{overflow:scroll;}

我下面的任何尝试都不允许同时使用打开和关闭,只有一个或另一个。因此,当前,当元素切换为打开时,它可以工作,但当元素关闭时,
html,body
溢出不会返回滚动,用户无法浏览站点

$(document).ready(function(){

    $('.isilnk').on('click', function(){
        $('.isi').addClass('isi--show-isi');
        $("html, body").css({"overflow": "hidden"});  
    }); 

    if ($(".isi").hasClass("isi--show-isi")) {
      $("isi__wrapper").css("overflow","scroll");
      $("html, body").css({"overflow": "scroll"});  
    }
    else { 
      $("html, body").css({"overflow": "scroll"});  
    }
    $('.isi__expander').click(function() {
       $("html, body").css({"overflow": "hidden"});  
    });

    $('.isi__wrapper').click(function() { 
        $("html, body").css({"overflow": "scroll"});  
    }
});
作为猜测:

$(document).ready(function(){

    $('.isilnk').on('click', function(){
        $('.isi').toggleClass('isi--show-isi');
        $("html, body").css({"overflow": "hidden"});  
        setCSS();
    }); 

    $('.isi__expander').click(function() {
      ('.isi').addClass('isi--show-isi');
      setCSS();
    });

    $('.isi__wrapper').click(function() { 
      ('.isi').removeClass('isi--show-isi');
      setCSS();
    }
});

function setCSS() {
    if ($(".isi").hasClass("isi--show-isi")) {
      $("isi__wrapper").css("overflow","scroll");
      $("html, body").css({"overflow": "scroll"});  
    }
    else { 
      $("html, body").css({"overflow": "scroll"});  
    }
}

您可以发布html吗?另外,部分代码不在click事件函数中。例如,
if($(“.isi”).hasClass(“isi--show isi”))
将始终执行
else
语句,因为它只运行一次:on document ready。更改该语句不会产生不同的结果。谢谢,由于某些原因,我根本不会运行该语句。您能将html添加到问题中吗?