jQuery getElementByClassName有效,但并非总是如此

时间:2018-05-21 23:58:27

标签: jquery

我有一些jQuery可以完美地按照需要运行,但并非总是如此,有时它会再次刷新页面后才会起作用,我不知道为什么。

我想要的是在侧边栏打开时禁用主屏幕滚动,并在其关闭时使其滚动(仅当窗口很小时才显示侧边栏)。

这是我的jQuery:

jQuery(document).ready(function($) {
$(".sidebar-mobile-icon").click(function() {
    var sideBar = $(".shop-sidebar");
    for (var i = 0; i < sideBar.length; i++) {
        $("html").css("overflow", "hidden");
        if(sideBar.hasClass("opened")) {
            $("html").css("overflow", "scroll");
        }   
    }
});
});

如果您访问我的网站,可以进行测试:outfityard.com,问题出在侧边栏中,但只会出现一个小窗口浏览器。

2 个答案:

答案 0 :(得分:1)

我不确定你为什么使用for-loop,但这应该可行。

jQuery(document).ready(function($) {
  $(".sidebar-mobile-icon").click(function() {
      if ($(".shop-sidebar").hasClass("opened")) {
        $("html, body").css("overflow", "scroll");
      } else {
        $("html, body").css("overflow", "hidden");
      }
  });
});

答案 1 :(得分:0)

将样式应用于正文,而不是html元素。