Witam, otrzymuję błąd
Uncaught ReferenceError: achievement is not defined
kiedy wywołuję funkcję
open_modal_box_give_achievement_reward(1, achievement_i_array);
function open_modal_box_give_achievement_reward(achievement, achievement_i_array)
a następnie w tej funkcji wywołuję inną funkcję, której parametrami są parametry bieżącej funkcji:
give_achievement_reward(achievement, achievement_i_array);
function give_achievement_reward(achievement, achievement_i_array)
Błąd wyskakuje po wywołaniu drugiej funkcji. O co tutaj chodzi? Wcześniej wywoływałem funkcje przekazując argumenty z jednej na drugą i nic się nie działo.
Całość funkcji:
function open_modal_box_give_achievement_reward(achievement, achievement_i_array)
{
const modal_box = document.querySelector(".modal-container");
modal_box.style.display = "flex";
var title = document.querySelector(".modal-container .box .title-bar");
title.innerHTML = '<span class="title">You received a reward for achievement</span>';
var content = document.querySelector(".modal-container .box .content");
content.innerHTML = `<div class="divs"><button onclick="give_achievement_reward(achievement, achievement_i_array)">OK</button></div>`;
}
function give_achievement_reward(achievement, achievement_i_array)
{
if_received_achievement_reward[achievement_i_array] = 1;
if(selected_page.substring(0, selected_page.length-1) == 'achievements')
{
achievements(parseInt(selected_page.substr(selected_page.length-1, 1)));
}
switch(achievement)
{
case 1:
coins += 1;
break;
case 2:
coins += 2;
break;
case 3:
coins += 3;
break;
case 4:
coins += 4;
break;
case 5:
coins += 5;
break;
case 6:
coins += 6;
break;
case 7:
coins += 7;
break;
case 8:
coins += 8;
break;
case 9:
coins += 9;
break;
case 10:
coins += 10;
break;
case 11:
coins += 11;
break;
case 12:
coins += 12;
break;
case 13:
coins += 13;
break;
case 14:
coins += 14;
break;
case 15:
coins += 15;
break;
case 16:
coins += 16;
break;
}
coins_update();
close_modal_box();
}
wywołanie pierwszej funkcji odbywa się poprzez naciśnięcie:
text.setAttribute("onclick", "open_modal_box_give_achievement_reward(1, achievement_i_array)");
(switch w drugiej funkcji taki bezsensowny, ponieważ będę go jeszcze edytował, teraz jest tylko dla testu i przygotowany na później)