var displayOfAll = document.getElementById("displayOfAll");
var playButton = document.getElementById("playButton");
var playButtonShadow = document.getElementById("playButtonShadow");
var playButtonPosX = 300;
var playButtonPosY = 350;
var playButtonMovingUpPosY = 350;
var playButtonHeightWhenMovingUp = 100;
var playButtonFontSize = 500;
var moneyNum = 0;
var addMoneyButtonPlus = '+';
var moneyToAdd = 1;
function Play() {
playButton.style.left = playButtonPosX+"px";
playButton.style.top = playButtonPosY+"px";
displayOfAll.removeChild(playButtonShadow);
if (playButtonMovingUpPosY <= 350) {
var moveUp = setInterval(function movingUp() {
if (playButtonMovingUpPosY <= 100) {
if (playButtonMovingUpPosY <= 0) {
clearInterval(moveUp);
displayOfAll.removeChild(playButton);
Main();
}
playButtonHeightWhenMovingUp -= 2;
playButton.style.height = playButtonHeightWhenMovingUp+"px";
playButtonMovingUpPosY -= 2;
playButton.style.top = playButtonMovingUpPosY+"px";
if (playButtonFontSize <= 300) {
if (playButtonFontSize <= 0) {
playButtonFontSize = 0;
} else {
playButtonFontSize -= 300;
playButton.style.fontSize = playButtonFontSize+"%";
}
} else {
playButtonFontSize -= 5;
playButton.style.fontSize = playButtonFontSize+"%";
}
} else {
playButtonMovingUpPosY -= 2;
playButton.style.top = playButtonMovingUpPosY+"px";
}
}, 1)
}
}
function Main() {
var moneyDiv = document.createElement("div");
moneyDiv.style = "margin:0px;padding:0px;position:absolute;height:100px;width:200px;background-color:green;font-size:500%;text-align:center;top:100px;left:275px;z-index:10;";
displayOfAll.appendChild(moneyDiv);
moneyDiv.innerHTML = "0";
var addMoneyButton = document.createElement("div");
addMoneyButton.style = "margin:0px;padding:0px;position:absolute;height:100px;width:200px;background-color:green;font-size:500%;text-align:center;top:500px;left:275px;z-index:10;";
addMoneyButton.innerHTML = addMoneyButtonPlus;
addMoneyButton.onclick = addMoney;
displayOfAll.appendChild(addMoneyButton);
}
function addMoney() {
moneyNum += moneyToAdd;
moneyDiv.innerHTML = moneyNum;
}
В предпоследней строчке("moneyDiv.innerHTML = moneyNum;") браузерный редактор выдаёт ошибку "Uncaught ReferenceError: moneyDiv is not defined at HTMLDivElement.addMoney" Что тут не так? Почему он не видит переменную??
Переменная должна быть в области видимости функции addMoney
, а сейчас она находится в function Main()
Переместите объявление переменной
var moneyDiv;
в самое начало скрипта, например, а внутри функции Main()
уже ее необходимо инициализировать:
function Main(){
moneyDiv = document.createElement("div");
.....
}
После этих телодвижений функция addMoney
будет видеть переменную moneyDiv
PS: когда функция получает доступ к переменной, определенной вне неё, а выше по областям видимости - это называется замыкание closure
подробнее про замыкания можно почитать тут
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Необходимо получить json данные с сайта но с помощью $get получить данные не получается , по причине отсутствия заголовка CORS Хотя и получается...
проблема состоит в том что у меня в jsone есть два одинокавых данных, но нужно вывести одну
Подскажите, пожалуйстаКак можно отследить создание div по определённому классу в body, чтобы в дальнейшем работать с объектом div и его содержимым?
имеется приложение на Aspnet Core mvc, с базой данных, которая создана при помощи sql server, взаимодействие с базой данных происходит при помощи Entity...