Функции JavaScript не запускают обновления CSS и .getElementById

Основываясь на этот вопрос относительно переключения в JS, я создал решение для переключения отображения / скрытия двух div и обновления различных текстов span из JS (скрипт здесь: https://jsfiddle.net/k5gbsxca/4/).

Проблема в том, что НИ ОДИН из javascript не запускается, и я не могу определить почему, когда он использует функциональность, которую я развернул ранее.

JavaScript реагирует на три разных события onclick, все из которых зависят от чтения и обновления переменной:

var state = {
lang: "en",
latinview: "inter"
}

Функциональность в jsfiddle (с использованием switch и if):

onclick = "changeDocView()"

  • в зависимости от state.latinview: кнопка изменения и текст <h4>

  • показать / скрыть div class = "document-inter" и div class = "document-diplo"

onclick = "showFrench()"

  • показать class = "fr"

  • скрыть class = "en"

  • в зависимости от state.latinview: кнопка изменения и текст <h4>

onclick = "showEnglish()"

  • показать class = "en"

  • скрыть class = "fr"

  • в зависимости от state.latinview: кнопка изменения и текст <h4>

Логика именно такая, какая мне нужна, и в компонентах она работает. Но это первый раз, когда я пытался запустить действия, основанные на тестировании переменной в JS.

Спасибо заранее.

вы смешиваете и сопоставляете jquery, а у вашей скрипки нет jquery.

Daniel A. White 27.10.2018 19:25

Я все еще изучаю этот материал, включая jsfiddle.

jbrehr 27.10.2018 19:32

@ DanielA.White, я не думаю, что единственная проблема - ссылка на jquery. если бы это было так, то только часть кода, в которой использовались методы jquery, вызывала бы ошибку, но в этом случае ошибка - «функция не определена».

Ercan Peker 27.10.2018 19:54
Поведение ключевого слова "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) для оценки ваших знаний,...
1
3
25
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий
  • добавить библиотеку jquery,
  • в параметрах типа загрузки выберите без переноса - в нижней части (в верхней части редактора скриптов). Тип загрузки по умолчанию в jsfiddle - «При загрузке», а когда выбрано «При загрузке», ваш код заключен в метод onload, и функции js не могут быть вызваны из html. в качестве альтернативы вы можете установить функции событий в js следующим образом:

document.getElementById("idOfElement").onclick = function(){//do something}

рабочий код: https://jsfiddle.net/ercanpeker/exwkco2r/

Спасибо! Вопрос: было бы предпочтительнее использовать document.getElementById("idOfElement").onclick = function(){//do something} или jquery $( "#id" ).click(function() вместо атрибута onclick = "" в HTML?

jbrehr 27.10.2018 19:57

jquery делает его проще и короче, я думаю, вам следует выбрать jquery one.

Ercan Peker 27.10.2018 19:58

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