Как мне заставить этот раздел javascript работать

Я создаю макет веб-сайта, используя HTML, Javascript и CSS. Я хочу перейти с одной страницы на другую (с home.html на TVShows.html), нажав на список «Телешоу» на панели навигации. Обычно я просто назначаю href, но вместо этого я хочу закодировать это взаимодействие с помощью Javascript. Вот моя попытка, но она не работает. HTML:

<li><a id = "TVShows" href = "#">TV
        Shows</a></li>

Javascript:

// Function to handle navigation to TV Shows page
document.getElementById('TVShows').addEventListener('click', function(event) {
    event.preventDefault(); // prevent default link behavior
    console.info("TV Shows link clicked");
    // Redirect to TV Shows page
    window.location.href = 'TVShows.html'; 
});

Я пробовал разные способы написания, но ни один из них не сработал.

У меня работает, а это говорит о том, что ошибка где-то в другом месте.

TRiG 27.03.2024 00:07

Я подтвердил, что имена и метки верны.

Awm 27.03.2024 00:09
Поведение ключевого слова "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) для оценки ваших знаний,...
0
2
56
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий
<!doctype html>

<li><a id = "TVShows" href = "#">TV
        Shows</a></li>

<script>
// Function to handle navigation to TV Shows page
document.getElementById('TVShows').addEventListener('click', function(event) {
    event.preventDefault(); // prevent default link behavior
    console.info("TV Shows link clicked");
    // Redirect to TV Shows page
    window.location.href = 'TVShows.html'; 
});
</script>

Эта отдельная страница работает. Значит, ошибка где-то в другом месте, в каком-то другом коде, который вы нам не показали.

Я нашел проблему. Я использовал один файл javascript для всех страниц и вызывал один и тот же .js src для каждого html-файла. Похоже, вам нужны отдельные файлы .js для каждого html или напишите скрипт прямо в html. Спасибо

Awm 27.03.2024 00:25

Обычно работает один общий файл. Бывают случаи, когда это может не произойти, возможно, по какой-то другой причине или из-за того, что различные функции в сценарии каким-то образом конфликтуют. Однако, как правило, это должно работать.

TRiG 27.03.2024 00:27

Я так и предполагал, но в данном случае не знаю, почему этого не произошло. Я убедился, что ничего не противоречит

Awm 27.03.2024 00:29

убедитесь, что ваш скрипт находится в конце вашего html-файла, иначе элемент может еще не существовать (поскольку он не загружен), или вы также можете использовать это:

document.addEventListener('DOMContentLoaded', function() {
    var tvShowsLink = document.getElementById('TVShows');
    tvShowsLink.addEventListener('click', function(event) {
        event.preventDefault();
        console.info("TV Shows link clicked");
        window.location.href = 'TVShows.html';
    });
});

Я нашел проблему. Я использовал один файл javascript для всех страниц и вызывал один и тот же .js src для каждого html-файла. Похоже, вам нужны отдельные файлы .js для каждого html или напишите скрипт прямо в html.

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