Браузер не будет отражать изменения в файлах JS

Недавно я узнал, как разместить локальный веб-сервер, и в последнее время я столкнулся с очень неприятной проблемой. Мой браузер видит изменения, которые я вношу в свои файлы HTML и CSS, но никак не реагирует на мой файл JS. Все они находятся в одной папке index.js, index.html и main.css. Меня очень расстраивает и трудно практиковать, когда я даже не могу сказать, работает ли то, что я делаю. Кто-нибудь видит какие-либо проблемы с моим кодом, которые могут объяснить это? Кэш у меня отключен, поэтому я знаю, что это не так.

HTML:

<!DOCTYPE html>
<html lang = "en">
<head>
    <title>Shopping List</title>
    <link rel = "stylesheet" href = "https://cdnjs.cloudflare.com/ajax/libs/normalize/4.2.0/normalize.min.css">
    <link href = "https://fonts.googleapis.com/css?family=Roboto" rel = "stylesheet">
    <link rel = "stylesheet" href = "main.css">
</head>
<body>
    <div class = "container">
        <h1>Shopping List</h1>

        <form id = "js-shopping-list-form">
            <label for = "shopping-list-entry">Add an item</label>
            <input type = "text" name = "shopping-list-entry" id = "shopping-list-entry" placeholder = "e.g., broccoli">
            <button type = "submit">Add item</button>
        </form>
    </div>
    <script src = "https://code.jquery.com/jquery-3.2.1.js"></script>
    <script src = "index.js"></script>
</body>
</html>

JS:

'use strict';
/* global $ */

function addItem(){
  $('input').prop('required');
  $('#js-shopping-list-form').submit(event => {
    event.preventDefault(); 
    const userTextElement = $(event.currentTarget).find('#shopping-list-entry');

  helpAdd(userTextElement.val());
});
}

function checkItem(){
  $('.shopping-list').on('click', '.shopping-item-toggle', event => {
  event.preventDefault();   
});
}

function deleteItem(){
  $('.shopping-list').on('click', '.shopping-item-delete', event => {
  event.preventDefault();       
});
}

function helpCheck(item) {
  if ($(item.closest('li')).find('>:first-child').attr('class') === 'shopping- 
  item shopping-item__checked')
  {
  $(item.closest('li')).find('>:first-child').attr('class','shopping-item');
  }   
 else{
 $(item.closest('li')).find('>:first-child').attr('class','shopping-item 
 shopping-item__checked');
 }
}

function helpAdd(itemName){
  $( '.shopping-list').append(` <li>
  <span class = "shopping-item">${itemName}</span>
  <div class = "shopping-item-controls">
  <button class = "shopping-item-toggle">
    <span class = "button-label">check</span>
  </button>
  <button class = "shopping-item-delete">
    <span class = "button-label">delete</span>
  </button>
 </div>
</li>`);
}

$(addItem);
$(checkItem);
$(deleteItem);

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

Olian04 25.02.2019 02:32

Какой браузер вы используете? Вы пробовали Shift, нажимая кнопку обновления?"

rovyko 25.02.2019 02:32

Попробуйте сильно обновить страницу, Ctrl + Shift + R

Debendra 25.02.2019 02:35

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

user9355526 25.02.2019 02:38

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

Mario 25.02.2019 02:43

@user615274 user615274 ничего не отображается в консоли: / Я пробовал копировать и вставлять код из старых проектов, где я ЗНАЮ, что нет никаких ошибок и где что-то должно появиться, и это даже не отражает эти изменения.

user9355526 25.02.2019 03:04

не могли бы вы показать содержимое index.js? чтобы попытаться разобраться в проблеме. Я мог бы быть логичным

Mario 25.02.2019 03:15

@user615274 user615274 уверен, что я только что добавил код JS в исходный пост

user9355526 25.02.2019 03:27
«Недавно я изучаю, как разместить локальный веб-сервер» Какой веб-сервер вы используете и кэширует ли он ваши JS-файлы?
AuxTaco 25.02.2019 03:32

Можете ли вы попробовать найти файл сценария в исходном коде на вкладке консоли в Chrome?

Yadukrishnan M 25.02.2019 06:36
Поведение ключевого слова "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
10
76
2

Ответы 2

Если вы используете хром: Перейти к DevTools(F12) > Network tab > mark Disable cache

Затем обновите браузер, открыв окно DevTools.

Похоже, вам не хватает элемента с классом «список покупок», который я только что добавил как <ul class = "shopping-list"></ul>

Пожалуйста, попробуйте этот код

'use strict';
/* global $ */

function addItem() {
    $('input').prop('required');
    $('#js-shopping-list-form').submit(event => {
        event.preventDefault();
        const userTextElement = $(event.currentTarget).find('#shopping-list-entry');

        helpAdd(userTextElement.val());
    });
}

function checkItem() {
    $('.shopping-list').on('click', '.shopping-item-toggle', event => {
        event.preventDefault();
    });
}

function deleteItem() {
    $('.shopping-list').on('click', '.shopping-item-delete', event => {
        event.preventDefault();
    });
}

function helpCheck(item) {
    if ($(item.closest('li')).find('>:first-child').attr('class') === 'shopping-item shopping - item__checked')
    {
        $(item.closest('li')).find('>:first-child').attr('class', 'shopping-item');
    }   
 else {
        $(item.closest('li')).find('>:first-child').attr('class', 'shopping-item shopping - item__checked');
 }
}

function helpAdd(itemName) {
    $('.shopping-list').append(` <li>
  <span class = "shopping-item">${itemName}</span>
  <div class = "shopping-item-controls">
  <button class = "shopping-item-toggle">
    <span class = "button-label">check</span>
  </button>
  <button class = "shopping-item-delete">
    <span class = "button-label">delete</span>
  </button>
 </div>
</li>`);
}

$(addItem);
$(checkItem);
$(deleteItem);
<script src = "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class = "container">
    <h1>Shopping List</h1>

    <form id = "js-shopping-list-form">
        <label for = "shopping-list-entry">Add an item</label>
        <input type = "text" name = "shopping-list-entry" id = "shopping-list-entry" placeholder = "e.g., broccoli">
        <button type = "submit">Add item</button>
    </form>

    <ul class = "shopping-list"></ul>
</div>

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