Задать вопрос
@ForSureN1
frontend dev

Почему функция вызывается сама по себе?

Добрый день. У меня имеется функция, которая должна вызываться грубо говоря на главной странице, где есть слайдер с определенным классом, но зайдя на другую страницу любую, в консоли выдает ошибки - мол ты к кому добавляешь метод ClassList, тут таких нет. В общем надеюсь доходчиво объяснил
// //Отключение dots при слайдере с 1 элементом
  function requestDeleteDota() {
    const slider = document.querySelectorAll('.slider__swarowski .slick-track .slider__item');
    const dotsSlider = document.querySelector('.slider__swarowski .slick-dots');
    const deleteDots = ()  => {
      if (slider.length <= 1) {
        dotsSlider.classList.add('hidden');
      }
    }
    if(slider) {
      deleteDots();
    }
  }
  requestDeleteDota();
  • Вопрос задан
  • 172 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 1
sergiks
@sergiks Куратор тега JavaScript
♬♬
document.querySelectorAll() возвращает объект NodeList. Даже, если ни одного элемента не нашлось, вернётся объект, у которого свойство length === 0
Проверяйте вместо if (slider), который всегда будет true,
свойство length: if(slider.length) {
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Sanasol
@Sanasol Куратор тега JavaScript
нельзя просто так взять и загуглить ошибку
Что значит сама если прям вот тут в коде она вызывается?
А где в коде написано что она должна запускаться только на главной странице?
Отсюда и ошибка.
Ответ написан
@antares4045
Функция сама по себе точно не вызывается: вероятно файл, с скриптом подключён и перевызывается на всех страницах проекта.

Если найти место не получается, можно изменить условие вызова deleteDots на

slider && dotsSlider
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы