У меня есть функция щелчка, которая появляется, когда пользователь нажимает «игрока» в моей игре. Я пытаюсь закодировать замену между двумя игроками. Функция сначала проверяет, был ли выбран другой игрок, если это так, она проверяет, находятся ли они на скамейке или нет. Если они на скамейке запасных, то в них хранится информация о данных второго игрока.
Проблема заключается в хранении информации о первых игроках. Когда я предупреждаю «pid», он появляется как неопределенный. Есть ли способ сохранить pid, чтобы в следующий раз, когда пользователь нажимает на другого игрока, информация, сохраненная в 'pid', оставалась? Я понимаю, что pid объявляется внутри функции, я пытался сначала объявить его вне функции, но это все еще не работает.
var pid;
$('.player').click(function() {
event.preventDefault();
var start = $(this).data("start");
if ($(".show2")[0]){
// Player has already been selected
if ($(this).children('.show2').length) {
// User has selected same player, toggle off select image and return
$(this).children('.player-select').toggleClass('show2');
return;
}
if(start == 'FirstEleven'){
$(".message-alert").css("display", "block");
$(".message").html('You must substitute a player from the bench');
$(".overlay2").css("opacity", "0.5");
$(".overlay2").css("display", "block");
$(".container2").css("pointer-events", "all");
}
if(start == "Bench"){
var pid2 = $(this).data("id");
var element2 = $(this).data("element");
alert(pid);
alert(pid2);
}
} else {
// First player to be selected
if(start == 'Bench'){
// If player selected is on the bench
$(".message-alert").css("display", "block");
$(".message").html('You must select a player from the starting lineup first');
$(".overlay2").css("opacity", "0.5");
$(".overlay2").css("display", "block");
$(".container2").css("pointer-events", "all");
return;
}
$(this).children('.player-select').toggleClass('show2');
var pid = $(this).data("id");
var element = $(this).data("element");
}
});