JavaScript (jQuery) иногда не работает, когда вы связываете его как отдельный файл

Я нашел этот пример кода из здесь

Код такой:

<script>
    $("#modal2Button").click(function() {
      $("#modal1").fadeOut();
      setTimeout(function() {
        $("#modal2").fadeIn();
      }, 400)
    });


    $("#close-button").click(function() {
      setTimeout(function() {
        $("#modal1").fadeIn();
        $("#modal2").fadeOut();
      }, 1000)

    });
</script>

Когда я вставляю jQuery как отдельный файл и связываю его внутри <head>

<head>
<script src = "sample_code.js"></script>
</head>

а это почему-то не работает?

Любая помощь будет высоко оценена!

Путь к файлу правильный? Если ваш JavaScript находится рядом с вашим файлом HTML, вам может понадобиться сделать <script src = "./sample_code.js"></script>

Robert Cooper 27.05.2019 05:46

попробуйте проверить элемент на веб-странице, в браузере нажмите F12, чтобы открыть devtools, и попробуйте найти импортированный javascript, проверьте, доступен он или нет. если он недоступен, добавьте ./ перед именем файла.js Нравится src = "./sample_code.js"

Dupinder Singh 27.05.2019 05:51

@RobertCooper спасибо за вашу помощь, похоже, это путь, вызывающий проблему!

DAVE 27.05.2019 05:56

@DupinderSingh Спасибо, я попытался нажать F12, кажется, это лучший способ проверить, импортирован ли файл!

DAVE 27.05.2019 06:39
Поведение ключевого слова "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) для оценки ваших знаний,...
2
4
53
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Да, определенно это не сработает, потому что элементы DOM еще не загружены, и вы обращаетесь к ним, поэтому это будет ошибка undefined id modal2Button такая же для следующего.

Если вы запустите файл js, когда все элементы DOM будут загружены, проблем не возникнет.

Вы можете сделать это следующим образом:

Вы только что решили мой следующий вопрос! Мне нужно переместить тег в конец html, это проблема DOM! большое спасибо.

DAVE 27.05.2019 06:07

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

DAVE 27.05.2019 06:58
Ответ принят как подходящий

Это просто вопрос того, что вы используете правильный путь к вашему файлу JavaScript:

<head>
  <script src = "./sample_code.js"></script>
</head>

Обратите внимание на ./ перед именем файла, который указывает, что файл находится на том же уровне, что и ваш HTML-файл.

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