as you can see in the title I have a problem multiple people have had on this platform, but nothing works for me. I get the following error in my console:
Uncaught RangeError: Maximum call stack size exceeded
at new UseArray (quiz.html?_ijt=b3fubmjhnt75jg0ptc21kkq5g3&_ij_reload=RELOAD_ON_SAVE:346:20)
at new Elements (quiz.html?_ijt=b3fubmjhnt75jg0ptc21kkq5g3&_ij_reload=RELOAD_ON_SAVE:121:26)
at new Structure (quiz.html?_ijt=b3fubmjhnt75jg0ptc21kkq5g3&_ij_reload=RELOAD_ON_SAVE:63:29)
at new CreateLink (quiz.html?_ijt=b3fubmjhnt75jg0ptc21kkq5g3&_ij_reload=RELOAD_ON_SAVE:310:30)
at new Navigation (quiz.html?_ijt=b3fubmjhnt75jg0ptc21kkq5g3&_ij_reload=RELOAD_ON_SAVE:294:25)
at new Elements (quiz.html?_ijt=b3fubmjhnt75jg0ptc21kkq5g3&_ij_reload=RELOAD_ON_SAVE:123:24)
at new Structure (quiz.html?_ijt=b3fubmjhnt75jg0ptc21kkq5g3&_ij_reload=RELOAD_ON_SAVE:63:29)
at new CreateLink (quiz.html?_ijt=b3fubmjhnt75jg0ptc21kkq5g3&_ij_reload=RELOAD_ON_SAVE:310:30)
at new Navigation (quiz.html?_ijt=b3fubmjhnt75jg0ptc21kkq5g3&_ij_reload=RELOAD_ON_SAVE:294:25)
at new Elements (quiz.html?_ijt=b3fubmjhnt75jg0ptc21kkq5g3&_ij_reload=RELOAD_ON_SAVE:123:24)
I have no idea how to fix it because I tried everything I could find the last couple of hours. The main problem seems to be this function:
class DropdownFunctions {
DropDownClose(e) {
const tgt = e.target;
if (tgt.matches('.dropBtn')) {
this.DropDownCloseFunction();
}
}
DropDownCloseFunction() {
let dropdowns = document.getElementsByClassName("dropDiv");
for (let i = 0; i < dropdowns.length; i++) {
let openDropdown = dropdowns[i];
if (openDropdown.classList.contains('show')) {
openDropdown.classList.remove('show');
} else {
openDropdown.classList.add('show');
}
}
}
}
And I have a lot of functions like this:
class CreateLink {
constructor() {
this.tmp = []
this.array = new UseArray();
this.structure = new Structure(this.array.Quiz);
}
getLink() {
let url = this.structure.url;
for (let i = 0; i < url.length; i++) {
// Check if question is from the same quiz part and adds a , between chosen answers and add the right prefix at the beginning
if (url[i].length > 0) {
this.tmp.push("" + this.array.Quiz[i].prefix + url[i].join(","))
}
}
// If answers are from different quiz parts add a & between answers
return "" + this.tmp.join("&");
}
}
Anybody know a way to fix it? JSFiddle: https://jsfiddle.net/thijsl0705/1s98gumk/4/