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 Но оно не работает. Как это порешать то?

29th Feb 2020, 2:21 PM
Amorisck
Amorisck - avatar
6 ответов
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";}};
1st Mar 2020, 5:24 AM
Amorisck
Amorisck - avatar
0
Можешь кинуть содержимое html файла
29th Feb 2020, 4:45 PM
_yaroslavv [online_everyday]
_yaroslavv [online_everyday] - avatar
0
Ну, из того с чем взаимодействует js там только кнопка с id jmk А сама проблема в переменных
29th Feb 2020, 4:49 PM
Amorisck
Amorisck - avatar
0
Запустил я твой код. Вместо return написал обычное присваивание типа: b=b+1. Алерт всё нормально выводит.
29th Feb 2020, 5:05 PM
_yaroslavv [online_everyday]
_yaroslavv [online_everyday] - avatar
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
29th Feb 2020, 5:06 PM
_yaroslavv [online_everyday]
_yaroslavv [online_everyday] - avatar
0
В общем, суть в том, что тебе не надо было return юзать в твоем случае:)
1st Mar 2020, 7:34 AM
_yaroslavv [online_everyday]
_yaroslavv [online_everyday] - avatar