0
Почему функция не видит глобальных переменных?
Вот код: var a = document.getElementById("jmk"); var b = 0 function movhtml(a,b) { if (b == 1) { var a = document.getElementById("jmk"); a.innerHTML = "→"; return b - 1;} else { var a = document.getElementById("jmk"); a.innerHTML = "←"; return b + 1;}}; Если поставить alert(b) в начале функции, то при включении выйдет окошко с надписью что значение не определено. По задумке return должен менять глобальную переменную, и при следующем щелчке значение d должно быть 1 Но оно не работает. Как это порешать то?
6 Réponses
0
Крч, я задействовал классы, и глобальные переменные оказались не нужны.
И это, Ярик то что дописал ты включает только часть else.
По моей задумке из функции должны были меняться глобальные переменные, но этого не происходило.
Вот код:
function movhtml() {
var a = document.getElementById("jmk");
var b = a.classList.item(0);
if (b == "0") {
var a = document.getElementById("jmk");
a.innerHTML = "←";
//меняем сиэсэс
//заканчиваем менять сиэсэс
a.className = "1";}
else {
var a = document.getElementById("jmk");
a.innerHTML = "→";
//меняем сиэсэс
//заканчиваем менять сиэсэс
a.className = "0";}};
0
Можешь кинуть содержимое html файла
0
Ну, из того с чем взаимодействует js там только кнопка с id jmk
А сама проблема в переменных
0
Запустил я твой код. Вместо return написал обычное присваивание типа: b=b+1. Алерт всё нормально выводит.
0
var a = document.getElementById("jmk");
var b = 0
function movhtml(a,b) {
alert(b);
if (b == 1) {
var a = document.getElementById("jmk");
a.innerHTML = "→";
b= b - 1;
}
else {
var a = document.getElementById("jmk");
a.innerHTML = "←";
b = b + 1;
}
alert(b);
}
Выводит: 0, потом 1
0
В общем, суть в том, что тебе не надо было return юзать в твоем случае:)