Member 13257242 Ответов: 1

Переменная не будет отображаться после перезагрузки страницы


- Привет! Я пытаюсь отобразить переменную. Люди нажимают на изображение, чтобы выбрать покемона (Чармандера, Бульбазавра или Сквиртла), и это приведет их на страницу под названием battle.html и они смогут выбрать больше покемонов с теми монетами, которые у них есть. Код, который я использую для сохранения выбранного покемона, таков

function move() {
  if(localStorage.getItem('pokemonchosen') === null) {
        localStorage.setItem('pokemonchosen', pokemon);
    } else {
        pokemonchosen = localStorage.getItem('pokemonchosen');
    }
    document.getElementById("p1").innerHTML =
        "Pokemon chosen: " + pokemonchosen;
}
}


Вот код изображений:

<a href="battle.html" onclick="charmander();move();"><img draggable="false" src="images/charmander.gif"></a>
	<a href="battle.html" onclick="squirtle();move();"><img draggable="false" src="images/squirtle.gif"></a>
	<a href="battle.html" onclick="bulbasaur();move();"><img draggable="false" src="images/bulbasaur.gif"></a>


Вот все переменные:
var pokemonchosen;
var coins = 1000;
var pokemonagainstTutorial = "Magikarp";
var random = pokemonagainst[Math.floor(Math.random()*pokemonagainst.length)];
var username = document.getElementById('enterusername').innerHTML = username;
//HP For Pokemon - Start
var hpmagikarp = 100;
var hpcharmander = 100;
var hpbulbasaur = 100;
var hpsquirtle = 100;
//HP For Pokemon - End


Я не знаю, имеет ли это значение: но переменные находятся сверху, и я не использую тег script для всего кода, который является внешним скриптом. Но да я связываю его с ним дальше battle.html :


ОБНОВЛЕНИЕ (от комментариев):
Я немного отредактировал код:
var pokemonchosen;
var coins = 1000;
var pokemonagainstTutorial = "Magikarp";
//HP For Pokemon - Start
var hpmagikarp = 100;
var hpcharmander = 100;
var hpbulbasaur = 100;
var hpsquirtle = 100;
//HP For Pokemon - End

function move() {
if(localStorage.getItem('pokemonchosen') === null) {
localStorage.setItem('pokemonchosen', pokemonchosen);
} else {
pokemonchosen = localStorage.getItem('pokemonchosen');
}
document.getElementById("p1").innerHTML =
"Pokemon chosen: " + pokemonchosen;
}

Это все еще не работает, но я ближе: теперь он показывает: Pokemon chosen: undefined

Что я уже пробовал:

Я пробовал добавлять скрипт в HTML с помощью тега script.

Member 13257242

Я немного отредактировал код:
< добавлено к вопросу>

Thomas Daniels

Когда вы вызываете setItem, определяется ли "покемон"?

Member 13257242

@ProgramFox, нет, но я изменил код:
ВАР pokemonchosen;
var монет = 1000;
var pokemonagainstTutorial = " Magikarp";
// HP для Pokemon-Start
var hpmagikarp = 100;
var hpcharmander = 100;
var hpbulbasaur = 100;
var hpsquirtle = 100;
// HP для Pokemon-End

функция перемещения() {
если(хранилище localStorage.метод getitem('pokemonchosen') === значение null) {
localStorage. setItem ('pokemonchosen', pokemonchosen);
} еще {
pokemonchosen = localStorage. getItem ('pokemonchosen');
}
document.getElementById("p1"). innerHTML =
"Покемон выбрали:" + pokemonchosen;
}

1 Ответов

Рейтинг:
5

Thomas Daniels

Из вашего обновленного кода эти две строки очень важны:

var pokemonchosen;
localStorage.setItem('pokemonchosen', pokemonchosen);

pokemonchosen является undefined после этой первой строки, но никогда не получает значения. Итак, вторая выделенная строка хранит undefined в локальное хранилище. И это не очень полезно.

Где-то в вашем коде вам придется дать pokemonchosen фактическое значение-перед хранением его в localStorage.


Member 13257242

Спасибо за ответ! Хотя я понимаю, о чем вы говорите, Я не знаю, как применить это к моему коду? Например, должен ли я использовать подсказки, кнопки или что-то еще? Я использую кнопки, но когда они нажимают на кнопку, чтобы выбрать покемона, он просто говорит Pokemon Chosen: null, я действительно не понимаю. Скорее всего, я сделаю скриншоты и отправлю их вам, чтобы вы могли просмотреть их и посмотреть, что не так.

Thomas Daniels

Хм... "onclick" должен быть вызван до того, как ссылка перейдет на URL-адрес, заданный в атрибуте "href", так что, может быть, методы установки покемона сломаны? Это могло бы все объяснить, но я их не вижу.

Member 13257242

Вот фотографии: http://imgur.com/a/GsEJF http://imgur.com/a/SJSbM http://imgur.com/a/06Ofx