一只萌萌小番薯
啊,游戏需要全屏才能看到垃圾请参阅不同的窗格。css 窗格可以放在 css 文件中,JS 窗格内容可以放在外部 JS 文件中。这里根本不需要jQuery链接标签和外部JS脚本进入头部,链接到外部CSS文件也是如此我不明白“runme”是做什么的,似乎并不重要window.addEventListener("load", function() { document.getElementById("gioca").addEventListener("click", timerApparizioni); if (document.getElementById("runme")) { document.getElementById("runme").addEventListener("click", function() { let SIZE = 4; let r = (Math.floor(Math.random() * SIZE)) + 1; let c = (Math.floor(Math.random() * SIZE)) + 1; document.querySelector("section.oggettoElements:nth-of-type(" + r + ") i:nth-child(" + c + ")").style.color = "#FF0000"; }) }})const delay = 3000;// Funzione per iniziare a giocare: quando l'utente preme "gioca" iniziano ad apparire gli oggetti e si avvia un timerfunction timerApparizioni() { timerOggetti = setInterval(apparizioneOggetto, delay);}let tuttiVisibili = false;// Funzione per prendere un oggetto a caso della tabella e renderlo visibilefunction apparizioneOggetto(eve) { let oggettoScelto, colonna, riga; tuttiVisibili = !( Array .from(document.querySelectorAll('div[id^="c-"]')) .some((pe_grid) => { return pe_grid.style.visibility !== 'visible'; }) ); if (tuttiVisibili) { document.getElementById('gioca').setAttribute('disabled', 'disabled'); } else { do { colonna = 1 + Math.floor(4 * Math.random()); riga = 1 + Math.floor(4 * Math.random()); oggettoScelto = document.querySelector(`#c-${colonna}${riga}`); // In alternativa: document.getElementById(`c-${colonna}${riga}`) } while (oggettoScelto.style.visibility === 'visible'); oggettoScelto.style.visibility = 'visible'; }}window.addEventListener("load", function() { document.getElementById("gioca").addEventListener("click", timerApparizioni); if (document.getElementById("runme")) { document.getElementById("runme").addEventListener("click", function() { let SIZE = 4; let r = (Math.floor(Math.random() * SIZE)) + 1; let c = (Math.floor(Math.random() * SIZE)) + 1; document.querySelector("section.oggettoElements:nth-of-type(" + r + ") i:nth-child(" + c + ")").style.color = "#FF0000"; }) }})// funzione per andare alla pagina "menu principale"function GoToMainMenu() { location.href = "mainMenu.html";}// PARTE INIZIALIZZAZIONE gioco// seleziono per classe oggetti e contenitoriconst oggettoElements = document.querySelectorAll(".oggetto");const contenitoreElements = document.querySelectorAll(".contenitore");// punteggio e vitevar vite = 3;var score = 0;const divScore = document.getElementById("score");// PARTE DEI LISTENERS per il gioco// Aggiungo un listener ad ogni oggetto per "ascoltare" quando inizia il drag oggettoElements.forEach(ogg => { ogg.addEventListener("dragstart", dragStart);});// Aggiungo più listener ad ogni elemento per "ascoltare" cosa succede tra l'inizio del drag e la sua fine (drop)contenitoreElements.forEach(ogg => { ogg.addEventListener("dragenter", dragEnter); // "Ascolta" se un oggetto è posizionato sopra ad un contenitore ogg.addEventListener("dragover", dragOver); // "Ascolta" se un oggetto è rilasciato sopra ad un contenitore ogg.addEventListener("dragleave", dragLeave); // "Ascolta" se un oggetto va via da un contenitore ogg.addEventListener("drop", drop); // "Ascolta" se un oggetto viene rilasciato sopra ad un contenitore});// PARTE DEGLI EVENTI DRAG AND DROP per il gioco// Evento "inizio a prendere un oggetto"function dragStart(event) { event.dataTransfer.setData("text", event.target.id);}// Se un oggetto viene posizioneto sopra al contenitore, viene aggiunto "contenitore-over" alla classe del contenitore// Determina l'effetto visivo dell'ingrandirsi di un contenitore quando un oggetto viene trascinato soprafunction dragEnter(event) { if (!event.target.classList.contains("dropped")) { event.target.classList.add("contenitore-hover"); }}// "Lascia il comando all'itente": evita la gestione di default e impedisce che venga droppato in automaticofunction dragOver(event) { if (!event.target.classList.contains("dropped")) { event.preventDefault(); /* developer.mozilla.org Il metodo preventDefault() dell'interfaccia Event dice all'user agent che se l'evento non viene esplicitamente gestito, la sua azione predefinita non dovrebbe essere presa come normalmente. L'evento continua a propagarsi come al solito, a meno che uno dei suoi listener di eventi non chiami stopPropagation() o stopImmediatePropagation(), uno dei due interrompa la propagazione contemporaneamente. */ }}/* Se un oggetto viene posizionato sopra ad un contenitore, esso viene ingrandito dalla funzione dragEnter.Se poi il giocatore "cambia idea", e trascina lontano dal contenitore il suo oggetto, esso deve tornare della misura inizialeRimuovo "contenitore-over" dalla classe del contenitore */function dragLeave(event) { if (!event.target.classList.contains("dropped")) { event.target.classList.remove("contenitore-hover"); }}var counterRightDropped = 0;/* gestione del rilascio/drop: Se l'oggetto viene rilasciato sopra ad un contenitore:- il contenitore ritorna della misura iniziale di default (come in dragLeave, viene rimosso "contenitore-over" dalla classe)- viene fatto un confronto tra l'id parziale dell'oggetto e l'id accettabile dal contenitore.- Se l'abbinamento è giusto (ossia confronto = true), viene aggiunto "dragged" alla classe dell'oggetto, facendo in modo che non sia più disponibile (effetto visivo css) ne' prendibile (draggable=false)- Viene incrementato o decrementato il contatore del punteggio a seconda dell'esisto del confronto */function drop(event) { event.target.classList.remove("contenitore-hover"); const idAccettabileContenitore = event.target.getAttribute("idAccettabile"); // Prendo l'id che il contenitore accetta const idOggetto = event.dataTransfer.getData("text"); // Con dragStart ho settato l'attributo text a "event.target.id". Qui lo riprendo (ex: "11") const sottostringaID = idOggetto.substr(0, 3); // Sottostringa dell'id dell'oggetto (ex. da "13" a "1") const vita1 = document.getElementById("vita1"); const vita2 = document.getElementById("vita2"); const vita3 = document.getElementById("vita3"); const giocabutton = document.getElementById('gioca'); const nuovaPart = document.getElementById("nuovaPartita"); if (sottostringaID === idAccettabileContenitore) { const oggettoGiusto = document.getElementById(idOggetto); oggettoGiusto.classList.add("dragged"); oggettoGiusto.setAttribute("draggable", "false"); score++; counterRightDropped++; divScore.innerText = "Punteggio: " + score; } else { if (vita1.style.visibility === "visible") { vita1.style.visibility = 'hidden'; } else if (vita3.style.visibility === "visible") { vita3.style.visibility = 'hidden'; } else { vita2.style.visibility = 'hidden'; } score = score - 2; divScore.innerText = "Punteggio: " + score; vite = vite - 1; if (vite == 0) { vita2.style.visibility = 'hidden'; giocabutton.style.visibility = 'hidden'; setTimeout(function() { alert("GAME OVER! \nVite-Alberelli esauriti! \nPunteggio finale: " + score); }, 20) clearInterval(timerOggetti); nuovaPart.style.visibility = 'visible'; } } if (counterRightDropped === 16) { giocabutton.style.visibility = 'hidden'; oggettoElements.forEach(ogg => { ogg.setAttribute("class", "fas fa-check-circle oggetto"); }); setTimeout(function() { alert("HAI VINTO! \nPunteggio finale: " + score); }, 50) clearInterval(timerOggetti); nuovaPart.style.visibility = 'visible'; }}body { margin: 0; height: 100vh; background: linear-gradient(to right bottom, gold, limegreen);}h1,h2,h3 { margin: 0 0 3px 0;}h1 { text-align: center; color: green; font: bold 52px Helvetica, Arial, Sans-Serif; text-shadow: 1px 1px #fe4902, 2px 2px #fe4902, 3px 3px #fe4902;}h1:hover { position: relative; top: -3px; left: -3px; text-shadow: 1px 1px #fe4902, 2px 2px #fe4902, 3px 3px #fe4902, 4px 4px #fe4902, 5px 5px #fe4902, 6px 6px #fe4902; cursor: pointer;}#time { color: navy; font: bold 24px Helvetica, Arial, Sans-Serif; text-align: center;}#score { color: blue; font: bold 24px Helvetica, Arial, Sans-Serif; text-shadow: 1px 1px #02a2fe, 2px 2px #02a2fe, 3px 3px #02a2fe; text-align: center;}h2 { color: orange; font: bold 34px Helvetica, Arial, Sans-Serif; text-shadow: 1px 1px #02a2fe, 2px 2px #02a2fe, 3px 3px #02a2fe; text-align: center;}h3 { color: navy; font: bold 24px Helvetica, Arial, Sans-Serif; text-shadow: 1px 1px #02a2fe, 2px 2px #02a2fe, 3px 3px #02a2fe; text-align: center;}.oggettoElements { display: flex; justify-content: center; margin: 32px;}.oggetto { height: 80px; width: 80px; display: flex; align-items: center; justify-content: center; font-size: 64px; margin: 0px 8px; cursor: move; transition: opacity 0.2s;}.oggetto:hover { opacity: 0.5;}.contenitore { height: 104px; width: 128px; margin: 16px auto; display: flex; justify-content: center; align-items: center; flex-direction: column; text-align: center; font-size: 64px; font-weight: bold; background-color: #fff; border: 3px dashed #111; transition: border-width 0.2s, transform 0.2s, background-color 0.4s;}.flexcontainer { display: flex; flex-direction: row;}.contenitore span { font-size: 20px; pointer-events: none; /* The element is never the target of pointer events */}.contenitore.contenitore-hover { border-width: 5px; transform: scale(1.3);}.contenitore.dropped { border-style: solid; color: #fff;}.contenitore.dropped i { pointer-events: none;}.oggetto.dragged { user-select: none; opacity: 0.1; cursor: default;}.oggetto.dragged:hover { opacity: 0.1;}.tabella { height: 70%; width: 20%; margin: 16px auto; display: flex; justify-content: center; align-items: center; flex-direction: column;}body>section { display: table; align: center;}section.oggettoElements { display: table-row;}section.oggettoElements>div { display: table-cell; height: 80px; width: 80px; align-items: center; justify-content: center; visibility: hidden; text-align: center;}section.oggettoElements>div>div { display: flex; height: 30px; width: 100px; align-items: center;}div>span { flex: 1; text-align: center}#gioca { text-align: center; cursor: pointer; visibility: visible;}.tree { height: 50px; width: 50px; margin: 16px auto; display: flex; justify-content: center; align-items: center; flex-direction: column; text-align: center; font-size: 40px; font-weight: bold;}.flexalberi { display: flex; flex-direction: row;}#nuovaPartita { cursor: pointer;}<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.9.0/css/all.css"><div onClick="GoToMainMenu();"> <h1>Trash CAN or trash CAN't?</h1></div><div id="gioca"> <h2><u>GIOCA</u> <h2></div><div> <h3>Abbina il rifiuto al bidone giusto!</h3></div><div id="nuovaPartita" onClick="history.go(0);" style="visibility:hidden;"> <h2>GIOCA ANCORA</h2></div><div id="score">Punteggio: 0</div><!-- section contenente le vite-alberelli --><section class="flexalberi"> <i class="fas fa-tree tree" id="vita1" style="color: #008000; visibility:visible;"></i> <i class="fas fa-tree tree" id="vita2" style="color: #008000; visibility:visible;"></i> <i class="fas fa-tree tree" id="vita3" style="color: #008000; visibility:visible;"></i></section><!-- section contenente i contenitori (fissi) in cui andranno trascinati gli oggetti --><section class="contenitore-elements flexcontainer"> <div class="fas fa-trash contenitore" idAccettabile="c-1" style="color: #0000FF;"><span>Carta</span></div> <div class="fas fa-trash contenitore" idAccettabile="c-2" style="color: #008000;"><span>Vetro</span></div> <div class="fas fa-trash contenitore" idAccettabile="c-3" style="color: #FFD700;"><span>Plastica</span></div> <div class="fas fa-trash contenitore" idAccettabile="c-4" style="color: #8B4513;"><span>Organico</span></div></section><!-- Tabella contenente gli oggetti che appariranno sullo schermo durante la partita --><section class="tabella"> <section class="oggettoElements"> <div class="fas fa-prescription-bottle oggetto" draggable="true" style="color: #000000;" id="c-32"> <div><span></span></div> </div> <div class="fas fa-bone oggetto" draggable="true" style="color: #000000;" id="c-42"> <div><span></span></div> </div> <div class="fas fa-flask oggetto" draggable="true" style="color: #000000;" id="c-22"> <div><span></span></div> </div> <div class="fas fa-box-open oggetto" draggable="true" style="color: #000000;" id="c-12"> <div><span></span></div> </div> </section> <section class="oggettoElements"> <div class="far fa-newspaper oggetto" draggable="true" style="color: #000000;" id="c-11"> <div><span></span></div> </div> <div class="fas fa-wine-glass-alt oggetto" draggable="true" style="color: #000000;" id="c-21"> <div><span></span></div> </div> <div class="fas fa-wine-bottle oggetto" draggable="true" style="color: #000000;" id="c-31"> <div><span></span></div> </div> <div class="fas fa-apple-alt oggetto" draggable="true" style="color: #000000;" id="c-41"> <div><span></span></div> </div> </section> <section class="oggettoElements"> <div class="far fa-hourglass oggetto" draggable="true" style="color: #000000;" id="c-23"> <div><span></span></div> </div> <div class="fas fa-drumstick-bite oggetto" draggable="true" style="color: #000000;" id="c-43"> <div><span></span></div> </div> <div class="far fa-map oggetto" draggable="true" style="color: #000000;" id="c-13"> <div><span></span></div> </div> <div class="fas fa-utensils oggetto" draggable="true" style="color: #000000;" id="c-33"> <div><span></span></div> </div> </section> <section class="oggettoElements"> <div class="far fa-file oggetto" draggable="true" style="color: #000000;" id="c-14"> <div><span></span></div> </div> <div class="fas fas fa-cookie-bite oggetto" draggable="true" style="color: #000000;" id="c-44"> <div><span></span></div> </div> <div class="fas fa-shopping-bag oggetto" draggable="true" style="color: #000000;" id="c-34"> <div><span></span></div> </div> <div class="fas fa-vial oggetto" draggable="true" style="color: #000000;" id="c-24"> <div><span></span></div> </div> </section></section>
杨魅力
我让它工作,有错误,有以下更改。$(function() { const delay = 3000; // Funzione per iniziare a giocare: quando l'utente preme "gioca" iniziano ad apparire gli oggetti e si avvia un timer function timerApparizioni() { timerOggetti = setInterval(apparizioneOggetto, delay); } let tuttiVisibili = false; // Funzione per prendere un oggetto a caso della tabella e renderlo visibile function apparizioneOggetto(eve) { let oggettoScelto, colonna, riga; tuttiVisibili = !( Array .from(document.querySelectorAll('div[id^="c-"]')) .some((pe_grid) => { return pe_grid.style.visibility !== 'visible'; }) ); if (tuttiVisibili) { document.getElementById('gioca').setAttribute('disabled', 'disabled'); } else { do { colonna = 1 + Math.floor(4 * Math.random()); riga = 1 + Math.floor(4 * Math.random()); oggettoScelto = document.querySelector(`#c-${colonna}${riga}`); // In alternativa: document.getElementById(`c-${colonna}${riga}`) } while (oggettoScelto.style.visibility === 'visible'); oggettoScelto.style.visibility = 'visible'; } } // funzione per andare alla pagina "menu principale" function GoToMainMenu() { location.href = "mainMenu.html"; } // PARTE INIZIALIZZAZIONE gioco // seleziono per classe oggetti e contenitori const oggettoElements = document.querySelectorAll(".oggetto"); const contenitoreElements = document.querySelectorAll(".contenitore"); // punteggio e vite var vite = 3; var score = 0; const divScore = document.getElementById("score"); // PARTE DEI LISTENERS per il gioco // Aggiungo un listener ad ogni oggetto per "ascoltare" quando inizia il drag oggettoElements.forEach(ogg => { ogg.addEventListener("dragstart", dragStart); }); // Aggiungo più listener ad ogni elemento per "ascoltare" cosa succede tra l'inizio del drag e la sua fine (drop) contenitoreElements.forEach(ogg => { ogg.addEventListener("dragenter", dragEnter); // "Ascolta" se un oggetto è posizionato sopra ad un contenitore ogg.addEventListener("dragover", dragOver); // "Ascolta" se un oggetto è rilasciato sopra ad un contenitore ogg.addEventListener("dragleave", dragLeave); // "Ascolta" se un oggetto va via da un contenitore ogg.addEventListener("drop", drop); // "Ascolta" se un oggetto viene rilasciato sopra ad un contenitore }); // PARTE DEGLI EVENTI DRAG AND DROP per il gioco // Evento "inizio a prendere un oggetto" function dragStart(event) { event.dataTransfer.setData("text", event.target.id); } // Se un oggetto viene posizioneto sopra al contenitore, viene aggiunto "contenitore-over" alla classe del contenitore // Determina l'effetto visivo dell'ingrandirsi di un contenitore quando un oggetto viene trascinato sopra function dragEnter(event) { if (!event.target.classList.contains("dropped")) { event.target.classList.add("contenitore-hover"); } } // "Lascia il comando all'itente": evita la gestione di default e impedisce che venga droppato in automatico function dragOver(event) { if (!event.target.classList.contains("dropped")) { event.preventDefault(); /* developer.mozilla.org Il metodo preventDefault() dell'interfaccia Event dice all'user agent che se l'evento non viene esplicitamente gestito, la sua azione predefinita non dovrebbe essere presa come normalmente. L'evento continua a propagarsi come al solito, a meno che uno dei suoi listener di eventi non chiami stopPropagation() o stopImmediatePropagation(), uno dei due interrompa la propagazione contemporaneamente. */ } } /* Se un oggetto viene posizionato sopra ad un contenitore, esso viene ingrandito dalla funzione dragEnter. Se poi il giocatore "cambia idea", e trascina lontano dal contenitore il suo oggetto, esso deve tornare della misura iniziale Rimuovo "contenitore-over" dalla classe del contenitore */ function dragLeave(event) { if (!event.target.classList.contains("dropped")) { event.target.classList.remove("contenitore-hover"); } } var counterRightDropped = 0; /* gestione del rilascio/drop: Se l'oggetto viene rilasciato sopra ad un contenitore: - il contenitore ritorna della misura iniziale di default (come in dragLeave, viene rimosso "contenitore-over" dalla classe) - viene fatto un confronto tra l'id parziale dell'oggetto e l'id accettabile dal contenitore. - Se l'abbinamento è giusto (ossia confronto = true), viene aggiunto "dragged" alla classe dell'oggetto, facendo in modo che non sia più disponibile (effetto visivo css) ne' prendibile (draggable=false) - Viene incrementato o decrementato il contatore del punteggio a seconda dell'esisto del confronto */ function drop(event) { event.target.classList.remove("contenitore-hover"); const idAccettabileContenitore = event.target.getAttribute("idAccettabile"); // Prendo l'id che il contenitore accetta const idOggetto = event.dataTransfer.getData("text"); // Con dragStart ho settato l'attributo text a "event.target.id". Qui lo riprendo (ex: "11") const sottostringaID = idOggetto.substr(0, 3); // Sottostringa dell'id dell'oggetto (ex. da "13" a "1") const vita1 = document.getElementById("vita1"); const vita2 = document.getElementById("vita2"); const vita3 = document.getElementById("vita3"); const giocabutton = document.getElementById('gioca'); const nuovaPart = document.getElementById("nuovaPartita"); if (sottostringaID === idAccettabileContenitore) { const oggettoGiusto = document.getElementById(idOggetto); oggettoGiusto.classList.add("dragged"); oggettoGiusto.setAttribute("draggable", "false"); score++; counterRightDropped++; divScore.innerText = "Punteggio: " + score; } else { if (vita1.style.visibility === "visible") { vita1.style.visibility = 'hidden'; } else if (vita3.style.visibility === "visible") { vita3.style.visibility = 'hidden'; } else { vita2.style.visibility = 'hidden'; } score = score - 2; divScore.innerText = "Punteggio: " + score; vite = vite - 1; if (vite == 0) { vita2.style.visibility = 'hidden'; giocabutton.style.visibility = 'hidden'; setTimeout(function() { alert("GAME OVER! \nVite-Alberelli esauriti! \nPunteggio finale: " + score); }, 20) clearInterval(timerOggetti); nuovaPart.style.visibility = 'visible'; } } if (counterRightDropped === 16) { giocabutton.style.visibility = 'hidden'; oggettoElements.forEach(ogg => { ogg.setAttribute("class", "fas fa-check-circle oggetto"); }); setTimeout(function() { alert("HAI VINTO! \nPunteggio finale: " + score); }, 50) clearInterval(timerOggetti); nuovaPart.style.visibility = 'visible'; } }});body { margin: 0; height: 100vh; background: linear-gradient(to right bottom, gold, limegreen);}h1,h2,h3 { margin: 0 0 3px 0;}h1 { text-align: center; color: green; font: bold 52px Helvetica, Arial, Sans-Serif; text-shadow: 1px 1px #fe4902, 2px 2px #fe4902, 3px 3px #fe4902;}h1:hover { position: relative; top: -3px; left: -3px; text-shadow: 1px 1px #fe4902, 2px 2px #fe4902, 3px 3px #fe4902, 4px 4px #fe4902, 5px 5px #fe4902, 6px 6px #fe4902; cursor: pointer;}#time { color: navy; font: bold 24px Helvetica, Arial, Sans-Serif; text-align: center;}#score { color: blue; font: bold 24px Helvetica, Arial, Sans-Serif; text-shadow: 1px 1px #02a2fe, 2px 2px #02a2fe, 3px 3px #02a2fe; text-align: center;}h2 { color: orange; font: bold 34px Helvetica, Arial, Sans-Serif; text-shadow: 1px 1px #02a2fe, 2px 2px #02a2fe, 3px 3px #02a2fe; text-align: center;}h3 { color: navy; font: bold 24px Helvetica, Arial, Sans-Serif; text-shadow: 1px 1px #02a2fe, 2px 2px #02a2fe, 3px 3px #02a2fe; text-align: center;}.oggettoElements { display: flex; justify-content: center; margin: 32px;}.oggetto { height: 80px; width: 80px; display: flex; align-items: center; justify-content: center; font-size: 64px; margin: 0px 8px; cursor: move; transition: opacity 0.2s;}.oggetto:hover { opacity: 0.5;}.contenitore { height: 104px; width: 128px; margin: 16px auto; display: flex; justify-content: center; align-items: center; flex-direction: column; text-align: center; font-size: 64px; font-weight: bold; background-color: #fff; border: 3px dashed #111; transition: border-width 0.2s, transform 0.2s, background-color 0.4s;}.flexcontainer { display: flex; flex-direction: row;}.contenitore span { font-size: 20px; pointer-events: none; /* The element is never the target of pointer events */}.contenitore.contenitore-hover { border-width: 5px; transform: scale(1.3);}.contenitore.dropped { border-style: solid; color: #fff;}.contenitore.dropped i { pointer-events: none;}.oggetto.dragged { user-select: none; opacity: 0.1; cursor: default;}.oggetto.dragged:hover { opacity: 0.1;}.tabella { height: 70%; width: 20%; margin: 16px auto; display: flex; justify-content: center; align-items: center; flex-direction: column;}body>section { display: table; align: center;}section.oggettoElements { display: table-row;}section.oggettoElements>div { display: table-cell; height: 80px; width: 80px; align-items: center; justify-content: center; visibility: hidden; text-align: center;}section.oggettoElements>div>div { display: flex; height: 30px; width: 100px; align-items: center;}div>span { flex: 1; text-align: center}#gioca { text-align: center; cursor: pointer; visibility: visible;}.tree { height: 50px; width: 50px; margin: 16px auto; display: flex; justify-content: center; align-items: center; flex-direction: column; text-align: center; font-size: 40px; font-weight: bold;}.flexalberi { display: flex; flex-direction: row;}#nuovaPartita { cursor: pointer;}<!DOCTYPE html><html><head> <meta charset="UTF-8"> <title>GAME</title> <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.9.0/css/all.css"> <link rel="stylesheet" type="text/css" href="CSSTEST.css"> <script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha256-4+XzXVhsDmqanXGHaHvgh1gMQKX40OUvDEBTu8JcmNs=" crossorigin="anonymous"></script> <script type="text/javascript" src="JSTEST.js"></script></head><body> <div onClick="GoToMainMenu();"> <h1>Trash CAN or trash CAN't?</h1> </div> <div id="gioca" onclick="timerApparizioni();"> <h2><u>GIOCA</u> <h3> </div> <div> <h3>Abbina il rifiuto al bidone giusto!</h3> </div> <div id="nuovaPartita" onClick="history.go(0);" style="visibility:hidden;"> <h2>GIOCA ANCORA</h2> </div> <div id="score">Punteggio: 0</div> <!-- section contenente le vite-alberelli --> <section class="flexalberi"> <i class="fas fa-tree tree" id="vita1" style="color: #008000; visibility:visible;"></i> <i class="fas fa-tree tree" id="vita2" style="color: #008000; visibility:visible;"></i> <i class="fas fa-tree tree" id="vita3" style="color: #008000; visibility:visible;"></i> </section> <!-- section contenente i contenitori (fissi) in cui andranno trascinati gli oggetti --> <section class="contenitore-elements flexcontainer"> <div class="fas fa-trash contenitore" idAccettabile="c-1" style="color: #0000FF;"><span>Carta</span></div> <div class="fas fa-trash contenitore" idAccettabile="c-2" style="color: #008000;"><span>Vetro</span></div> <div class="fas fa-trash contenitore" idAccettabile="c-3" style="color: #FFD700;"><span>Plastica</span></div> <div class="fas fa-trash contenitore" idAccettabile="c-4" style="color: #8B4513;"><span>Organico</span></div> </section> <!-- Tabella contenente gli oggetti che appariranno sullo schermo durante la partita --> <section class="tabella"> <section class="oggettoElements"> <div class="fas fa-prescription-bottle oggetto" draggable="true" style="color: #000000;" id="c-32"> <div><span></span></div> </div> <div class="fas fa-bone oggetto" draggable="true" style="color: #000000;" id="c-42"> <div><span></span></div> </div> <div class="fas fa-flask oggetto" draggable="true" style="color: #000000;" id="c-22"> <div><span></span></div> </div> <div class="fas fa-box-open oggetto" draggable="true" style="color: #000000;" id="c-12"> <div><span></span></div> </div> </section> <section class="oggettoElements"> <div class="far fa-newspaper oggetto" draggable="true" style="color: #000000;" id="c-11"> <div><span></span></div> </div> <div class="fas fa-wine-glass-alt oggetto" draggable="true" style="color: #000000;" id="c-21"> <div><span></span></div> </div> <div class="fas fa-wine-bottle oggetto" draggable="true" style="color: #000000;" id="c-31"> <div><span></span></div> </div> <div class="fas fa-apple-alt oggetto" draggable="true" style="color: #000000;" id="c-41"> <div><span></span></div> </div> </section> <section class="oggettoElements"> <div class="far fa-hourglass oggetto" draggable="true" style="color: #000000;" id="c-23"> <div><span></span></div> </div> <div class="fas fa-drumstick-bite oggetto" draggable="true" style="color: #000000;" id="c-43"> <div><span></span></div> </div> <div class="far fa-map oggetto" draggable="true" style="color: #000000;" id="c-13"> <div><span></span></div> </div> <div class="fas fa-utensils oggetto" draggable="true" style="color: #000000;" id="c-33"> <div><span></span></div> </div> </section> <section class="oggettoElements"> <div class="far fa-file oggetto" draggable="true" style="color: #000000;" id="c-14"> <div><span></span></div> </div> <div class="fas fas fa-cookie-bite oggetto" draggable="true" style="color: #000000;" id="c-44"> <div><span></span></div> </div> <div class="fas fa-shopping-bag oggetto" draggable="true" style="color: #000000;" id="c-34"> <div><span></span></div> </div> <div class="fas fa-vial oggetto" draggable="true" style="color: #000000;" id="c-24"> <div><span></span></div> </div> </section> </section></body></html>基本上是通过调用jQuery的文档就绪函数。$(function() {});在使用javascript访问它们之前,您必须确保dom有时间完成加载页面上的所有元素。我还删除了以下注释代码,因为它对javascript语法进行了不正确的注释。// ORIGINALE prof:<!-- $(document).ready(function(){ --> <!-- $('#runme').click(function(){ --> <!-- let SIZE = 4 --> <!-- let r = (Math.floor(Math.random() * SIZE)) + 1; --> <!-- let c = (Math.floor(Math.random() * SIZE)) + 1; --> <!-- $( "section.oggettoElements:nth-of-type("+r+") i:nth-child("+c+")" ).css( "color", "#FF0000" ); --> <!-- }); --><!-- }); -->