Код jQuery не работает с сайтом wordpress

Итак, я работаю над сайтом, настраиваемой темой wp с шаблоном _s, я поставил в очередь свои стили и скрипты, которые браузер улавливает без ошибок;

wp_enqueue_style( 'bootstrap-css', 'https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css' );

    wp_enqueue_script( 'bootstrap-js', 'https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js', array(jquery), true);

    wp_enqueue_style( 'cbd-yums-style', get_stylesheet_uri() );

    wp_enqueue_script( 'cbd-yums-scripts', get_template_directory_uri(). '/js/scripts.js', array(), true ); 

Код jQuery не работает с сайтом wordpress

scripts.js - это то место, где находится мой код jquery, И Я ПЫТАЮСЬ ИЗМЕНИТЬ ЦВЕТ ТЕКСТА МОИХ ОСНОВНЫХ ЭЛЕМЕНТОВ НАВИГАЦИИ Я пробовал этот код, полагая, что он сработает:

( function( $ ) {

    $('.primary-menu .menu-item').css('background-color', '#AED038');

} ) ( jQuery );

& соответствующий HTML

<nav id = "site-navigation" class = "main-navigation col-md-6 col-lg-6">
  <button class = "menu-toggle" aria-controls = "primary-menu" aria-expanded = "false">Primary Menu</button>
  <div class = "menu-header-menu-container">
    <ul id = "primary-menu" class = "menu nav-menu" aria-expanded = "false">
      <li id = "menu-item-44" class = "menu-item menu-item-type-custom menu-item-object-custom menu-item-44"><a href = "#home">Home</a></li>
      <li id = "menu-item-45" class = "menu-item menu-item-type-custom menu-item-object-custom menu-item-45"><a href = "#about">About</a></li>
      <li id = "menu-item-46" class = "menu-item menu-item-type-post_type menu-item-object-page menu-item-46"><a href = "#products">CBD Products</a></li>
    </ul>
  </div>        
</nav>

Но никаких изменений в перезагрузке браузера, поэтому я вернулся в w3schools, чтобы проверить свой синтаксис. я изменил пример jquery css (); Код jQuery не работает с сайтом wordpress

Кто-нибудь может увидеть, что я делаю неправильно?

Почему вы не добавили jQuery в свои зависимости? `wp_enqueue_script ('cbd-yums-scripts', get_template_directory_uri (). '/js/scripts.js', array ('jquery'), true);` И почему jquery не является строкой в ​​этом -> wp_enqueue_script( 'bootstrap-js', 'https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstra‌​p.min.js', array(jquery), true);?

DanieleAlessandra 25.10.2018 14:07

не работает, я пробовал: $ ('. primary-menu .menu-item'). css ('cssText', 'background-color: # AED038! important;'); , я нашел здесь использование cssText stackoverflow.com/questions/1986182/…

K4S3 25.10.2018 14:12

@SumeshTG нет необходимости использовать !important - встроенный CSS имеет самый высокий вес специфичности, поэтому использование! Important является избыточным.

treyBake 25.10.2018 14:30

primary-menu - это идентификатор, а не класс, используйте как # primary-menu, а не как .primary-menu

charan kumar 25.10.2018 14:40
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
4
277
3

Ответы 3

вам нужно выбрать идентификаторы с префиксом # в jquery, в текущей ситуации вызовите в идентификаторе с префиксом ., который означает имя класса, jquery ищет имя класса primary-menu, так как у вас нет элемента с именем класса primary-menu, стиль игнорируется.

проблему можно решить, изменив запрос $('#primary-menu .menu-item').css('background-color', '#AED038');

спасибо, что указали на это, и я даже надел очки на lol, но это все еще не сработало, $ ('# primary-menu .menu-item'). css ('background-color', '# AED038 '); Правильно ли я говорю, что теоретически это должно 1. искать элемент с идентификатором 'primary-menu' 2. искать дочерний элемент с классом 'menu-item' 3. изменять цвет фона элемента на # aed038.

K4S3 25.10.2018 14:24

Страницей нельзя безопасно манипулировать, пока документ не «готов». - http://learn.jquery.com/using-jquery-core/document-ready/

Измените свой код следующим образом:

(function($) {

    $(document).ready(function() {

        $('#primary-menu .menu-item').css('background-color', '#AED038');

    });

})(jQuery);

Теперь код будет выполняться, когда документ будет готов.

И, как заметил Хафиз Хамза: замените .primary-menu на #primary-menu.

Какие? Сокращение для $(document).ready(function() { - $(function() {. Не могли бы вы уточнить?

Daniël Visser 25.10.2018 14:44

Из первого ответа, относящегося к (function($){: Код в вашем вопросе не имеет ничего общего с .ready (). Скорее, это немедленно вызываемое функциональное выражение (IIFE) с объектом jQuery в качестве аргумента.

Daniël Visser 25.10.2018 14:58

сортировать по голосам - и даже в этом случае проблема не в том, как они объявили $(document)

treyBake 25.10.2018 15:00

О да, это может быть проблемой, WordPress помещает теги скриптов в голову. См. Этот JSfiddle, демонстрирующий мою точку зрения: jsfiddle.net/jrducf6v/3 Если вы можете опровергнуть это, я удалю свой ответ.

Daniël Visser 25.10.2018 15:22

у вас ошибочный тест - jQuery / JavaScript синхронный - он будет принимать последние заданные значения .. пример 1: jsfiddle.net/hjxv26de работает и пример 2: jsfiddle.net/8ekwbpur работает

treyBake 25.10.2018 15:26

Нет, тест действителен, я нацелил разные элементы по идентификатору: #menu-item-44, #menu-item-45 и #menu-item-46, чтобы он не отменял. Второй JSfiddle работает только потому, что load type установлен на on load. Я изменил тип загрузки вашего JSfiddle, и он не работает: jsfiddle.net/8ekwbpur/1

Daniël Visser 25.10.2018 15:36

НАШЕЛ ПРОБЛЕМУ !! 1. у меня не было правильно загруженного jQuery в качестве зависимости 2. Я не удостоверился, что jQuery написан в неконфликтном режиме.

поэтому я просто изменил его на

 jQuery(document).ready(function($){
    $('#primary-menu .menu-item').css('background-color', '#AED038');
});

и в functions.php, где мне нужно поставить в очередь скрипты и стили

wp_enqueue_script( 'cbd-yums-scripts', get_template_directory_uri(). '/js/scripts.js', array( 'jquery' ), '20181025' ,true ); 

спасибо всем за то, что помогли мне сузить проблему

Другие вопросы по теме