如果body没有类,则运行代码

时间:2017-04-22 12:27:42

标签: javascript jquery

所以我只是在身体没有上课时才尝试执行脚本" shifter-open"。 " shifter-open" -class被这个脚本添加到正文中:

$( 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');
      }
    });
    });
}

1 个答案:

答案 0 :(得分:1)

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

$(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');
    }
  });
});