所以我试图只在主体没有“ shifter-open”类时才执行脚本。该脚本将“ shifter-open”类添加到主体:

$( document ).ready(function() {
    $("body").addClass("shifter shifter-active");

    $('.shifter-handle').click( function() {
        $("body").toggleClass("shifter-open");
        $(".scrollheader").toggleClass("hovered");
    });
});


我的脚本仅应在主体没有该类的情况下执行,如下所示:(注意我如何使用if(!$(“ body”))

if (!$("body").hasClass("shifter-open")) {
    $( document ).ready(function() {
    var $header = $(".scrollheader");
    $header.hover(function() {
      if ($(window).scrollTop() == 0) {
        $header.addClass('hovered');
      }
    },function() {
      if ($header.hasClass('hovered')) {
        $header.removeClass('hovered');
      }
    });
    });
}

最佳答案

您需要检查事件处理程序内部,因为在页面加载后用户可以切换该类

$(document).ready(function() {
  var $header = $(".scrollheader");
  $header.hover(function() {
    if ($("body").hasClass("shifter-open") && $(window).scrollTop() == 0) {
      $header.addClass('hovered');
    }
  }, function() {
    if ($("body").hasClass("shifter-open")) {// no need to check if the hovered class exists
      $header.removeClass('hovered');
    }
  });
});

关于javascript - 如果主体没有类,则运行代码,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43559195/

10-13 00:21