Задать вопрос
@I_want_to_know

Как исправить ошибку «Uncaught ReferenceError: $ is not defined» хотя jQuery подключен?

Уважаемые знатоки, подскажите, как поправить ошибку "Uncaught ReferenceError: $ is not defined" jQuery подключен точно, локально.
Делаю счетчик
//--------------------------------
var iObserver = new IntersectionObserver(
  function (entries) {
    if (entries[0].isIntersecting === true) {
      setTimeout(() => {
        updateCount();
      }, 1000);
      iObserver.unobserve(entries[0].target); // перестаём отслеживать видимость
    }
  },
  { threshold: [0] }
);
if ($(".values").length) {
  iObserver.observe(document.getElementById("count"));
}

function updateCount() {
  $(".values").spincrement({
    thousandSeparator: "",
    duration: 4200,
  });

  var i = 0;
  if (i == 0) {
    i = 1;
    var width = 1;
    var id = setInterval(frame, 20);
    function frame() {
      if (width >= 100) {
        clearInterval(id);
        i = 0;
      } else {
        width++;
        if (width == 5) {
          $(".benefits__title").addClass("new-cube");
          //setTimeout( () => {
          $(".benefits__title").removeClass("new-cube");
          //}, 2000);
        }
      }
    }
  }
}

Вот html:
<section class="count count-section">
  <div class="container">
    <h2 class="count-name">О нас в цифрах</h2>
    
    <div class="countdown">
      <!-- Всего прйдено конкурсов финиш -->

      <div class="counter-home counter__willBe">
        <div class="count-title values" style="opacity: 1">16</div>
        <p class="count-text">Дня до ближайшего конкурса</p>
      </div>

      <div class="counter-home counter__was">
        <div class="count-title values" style="opacity: 1">35</div>
        <p class="count-text">Всего конкурсов было</p>
      </div>

      <div class="counter-home counter__participants">
        <div class="count-title values" style="opacity: 1">1286</div>

        <p class="count-text">Счастливых участников</p>
      </div>
    </div>
  </div>
</section>

Вот такая ошибка вылазит:
676050448818f135306788.png
  • Вопрос задан
  • 100 просмотров
Подписаться 1 Простой 7 комментариев
Пригласить эксперта
Ответы на вопрос 3
delphinpro
@delphinpro Куратор тега JavaScript
frontend developer
Порядок подключения скриптов имеет значение.
Порядок загрузки скриптов тоже имеет значение.
Ответ написан
Комментировать
Davidaa_WoW
@Davidaa_WoW
Можно попробовать заменить значок доллара на jQuery. То есть у Вас вместо
$(".values").length
Будет
jQuery(".values").length

Это актуально для тех случаев, когда у jQuery идут конфликты за знак $ с другими библиотеками. Но, конечно же, такой подход не решит отсутствие подключения самой библиотеки.
А $ - это по сути просто альяс для функции jQuery:
https://api.jquery.com/jQuery.noConflict/
Ответ написан
Комментировать
@I_want_to_know Автор вопроса
В общем, задачу я решил, но не совсем понимаю проблему.
моё решение: подключил jquery через cdn
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js" integrity="sha512-v2CJ7UaYy4JwqLDIrZUI/4hqeoQieOmAZNXBeQyjo21dadnwR+8ZaIJVT8EE2iyI61OV8e6M8PP2/4hpQINQ/g==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>

И всё заработало...
Предположил, что сам jquery.min.js у меня косячный, скопировал содержимое, подключил локально и опять увидел ошибку.
В общем так и не понял в чем истинная причина, но проблема решена.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
Rocket Смоленск
от 80 000 до 130 000 ₽
Wanted. Москва
от 250 000 до 400 000 ₽
Wanted. Санкт-Петербург
До 220 000 ₽
22 янв. 2025, в 04:08
6000 руб./за проект
21 янв. 2025, в 23:55
20000 руб./за проект
21 янв. 2025, в 23:35
80000 руб./за проект