Почему не работает код?

Ссылка скопирована
1 ответ

Здравствуйте!
Всё работало нормально в HTML шаблоне.
Наводишь на ссылку то вставляется соответствующая картинка в другой блок.

Вывод картинки с заголовком [[pdoResources?                   &parents=`5`                   &depth=`0`                   &tpl=`Tpl_cat_imageTitles`                   &includeTVs=`image_left_category`                 ]]

Вывод картинки с заголовком [[pdoResources? &parents=`5` &depth=`0` &tpl=`Tpl_cat_imageTitles` &includeTVs=`image_left_category` ]]

Вывод карточек с ссылкой [[pdoResources?                   &parents=`5`                   &depth=`0`                                      &tpl=`Tpl_cat_card`                   &includeTVs=`category_img, image_left_category`                 ]]

Вывод карточек с ссылкой [[pdoResources? &parents=`5` &depth=`0` &tpl=`Tpl_cat_card` &includeTVs=`category_img, image_left_category` ]]

Как только посадил на ModX то стало криво работать.
Может не правильно вывожу?

document.addEventListener("DOMContentLoaded", function() { let links = document.querySelectorAll('.link-cat');  for (let i = 1; i < links.length; i++) {   links[i].addEventListener('mouseover', (function(index) {     return function() {       showBlock(index);     };   })(i));    links[i].addEventListener('mouseout', (function(index) {     return function() {       hideBlock(index);     };   })(i)); }  function showBlock(index) {   document.querySelectorAll('.block-img img')[index].classList.add('visible');   document.querySelectorAll('.label-cat-img')[index].classList.add('visible');    }  function hideBlock(index) {   document.querySelectorAll('.block-img img')[index].classList.remove('visible');   document.querySelectorAll('.label-cat-img')[index].classList.remove('visible');  } });

document.addEventListener("DOMContentLoaded", function() { let links = document.querySelectorAll('.link-cat'); for (let i = 1; i < links.length; i++) { links[i].addEventListener('mouseover', (function(index) { return function() { showBlock(index); }; })(i)); links[i].addEventListener('mouseout', (function(index) { return function() { hideBlock(index); }; })(i)); } function showBlock(index) { document.querySelectorAll('.block-img img')[index].classList.add('visible'); document.querySelectorAll('.label-cat-img')[index].classList.add('visible'); } function hideBlock(index) { document.querySelectorAll('.block-img img')[index].classList.remove('visible'); document.querySelectorAll('.label-cat-img')[index].classList.remove('visible'); } });

Дополнительно:

Что в консоле браузера написано?

  • YepBro, ошибок нет не каких.
  • (function(index) {     return function() {       showBlock(index);     };   })(i)

    (function(index) { return function() { showBlock(index); }; })(i)

    Не то, чтобы это на что-то повлияло, но зачем тут иифе?

  • стало криво работать.

    Очень подробное описание проблемы.

  • Если ошибок нет, в т ч в админке, то сделай оба вывода некеширумыми.
    Не поможет - рассказывай, что именно криво.
  • ну и let i = 1 явно ограничивает набор '.block-img img' и тот, что ниже, т.к. у них первый элемент имеет индекс 0, не понятно, как это было нормально без модекса.
  • Александр Васильев, Просто нулевой элемент всегда активный по умолчанию.
  • RushV, тогда поставь после скобок [[pdoResources восклицательный знак "[[!" и сравнивай разметки
  • Александр Васильев, Короче не помогло.
    Вот видео с шаблона всё работает
    А вот видео где не корректно работает и почему-то скрипт начинает работать с конца элемента.
  • RushV, так не бывает, сравнивай разметки
  • Нужно решить такую задачу?

    Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

    Заказать помощь
    Лучший ответ
    1
    Ирина WP Ответ

    Чтобы выяснить, почему код не работает, первым делом необходимо проанализировать сам код и выявить возможные проблемы. Вот несколько шагов, которые можно предпринять для нахождения ошибок в коде:

    1. Проверьте синтаксические ошибки: убедитесь, что все скобки, точки с запятой и другие символы используются правильно и нет лишних пробелов или символов.

    2. Проверьте переменные: убедитесь, что все переменные объявлены и используются правильно. Проверьте, не перепутаны ли названия переменных или не произошло ли переопределение переменной.

    3. Проверьте логику: просмотрите код и убедитесь, что логика программы верна. Возможно, есть ошибки в условиях или циклах, что приводит к неправильному выполнению кода.

    4. Проверьте входные данные: убедитесь, что входные данные корректны и соответствуют ожидаемому формату. Некорректные данные могут привести к неправильной работе программы.

    5. Используйте отладчик: запустите код в отладочном режиме и пошагово просмотрите его выполнение, чтобы выявить место, где происходит ошибка.

    Приведу пример использования тега

     для отображения кода на PHP:
     
    <pre lang="php">

    для отображения кода на PHP: <pre lang="php">

    Если после выполнения вышеуказанных шагов проблема не будет решена, рекомендуется задать вопрос на форуме или в сообществе разработчиков. Укажите как можно больше информации о проблеме и коде, чтобы другие пользователи могли помочь вам найти решение.

    Другие ответы (0)

    Пока нет других ответов. Будьте первым, кто поможет автору.

    Ответить на вопрос

    комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Вам также может быть интересно