MediaWiki:Gadget-main-trivia-box.js: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
Line 26: | Line 26: | ||
} | } | ||
const buttons = div.querySelector(".rgwiki-main-trivia-buttons"); | const buttons = div.querySelector(".rgwiki-main-trivia-buttons"); | ||
const a = buttons.querySelector(".rgwiki-main-trivia-reroll"); | |||
const a = | |||
a.href = "javascript:void(0)"; | a.href = "javascript:void(0)"; | ||
a.addEventListener("click", roll); | a.addEventListener("click", roll); | ||
roll(); | roll(); | ||
}); | }); |
Revision as of 22:42, 26 February 2025
/* Finds elements by a selector and executes a function for each element */ function findAndExecute(selector, callback) { const elements = document.querySelectorAll(selector); elements.forEach((element) => { try { callback(element); } catch (e) { console.error(`Error while initializing "${selector}"`, e); } }); } /* Template:TriviaBox */ findAndExecute(".rgwiki-main-trivia-box", (div) => { function roll() { div.querySelectorAll("li.rgwiki-main-trivia-active").forEach(x => { x.classList.remove("rgwiki-main-trivia-active"); x.classList.add("rgwiki-main-trivia-previously-active"); }); const elements = div.querySelectorAll("li:not(.rgwiki-main-trivia-previously-active"); if (elements.length !== 0) { const rand = Math.floor(Math.random() * elements.length); elements[rand].classList.add("rgwiki-main-trivia-active"); } div.querySelectorAll("li.rgwiki-main-trivia-previously-active").forEach(x => { x.classList.remove("rgwiki-main-trivia-previously-active"); }); } const buttons = div.querySelector(".rgwiki-main-trivia-buttons"); const a = buttons.querySelector(".rgwiki-main-trivia-reroll"); a.href = "javascript:void(0)"; a.addEventListener("click", roll); roll(); });