Не удается заставить «if hasclass addclass» работать (jQuery)

#jquery #wordpress #wordpress-theming

#jquery #wordpress #wordpress-тематизация

Вопрос:

Я работаю над сайтом WordPress и хочу добавить класс в тело, чтобы он не прокручивался при открытии мобильного меню.

Я совсем новичок, когда дело доходит до jQuery, но после некоторого чтения я подумал, что у меня есть что-то, что должно работать, но, похоже, это не так, и я не могу понять почему. Я также использую bootstrap и их инструмент свертывания. Когда меню открыто, оно добавляет класс ‘show’ к одному из моих divs, и я пытаюсь использовать это условие для добавления класса в тело.

Вот код jQuery, который я добавил :

 (function($) {
  $(document).ready(function() {
  if ( $('#collapseMenu').hasClass('show') ) {
    $('document.body').addClass('bodyblock'); }
  })
})(jQuery);
 

И CSS : .bodyblock { position : fixed; }

jsfiddle с приближением того, что кажется мне актуальным здесь: http://jsfiddle.net/bot03eur /

Обычно я пытаюсь разобраться в этом самостоятельно или найти обходной путь, но я в растерянности, любая помощь будет с благодарностью!

Ответ №1:

jQuery нужна только 1 функция, чтобы заставить ее работать.

И ваш селектор не подходит, вам нужно только $ (‘body’) для его таргетинга.

 $(document).ready(function() {
  if ($('#collapseMenu').hasClass('show')) {
    $('body').addClass('bodyblock'); 
    console.log("Class bodyblock added to the body tag");
  }
}) 
 .bodyblock {
  background-color: grey;
} 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<body>
  <div id="collapseMenu" class="show"></div>
</body>