El código debería mostrar la trama de la portada del libro en el que hace clic mientras cambia el fondo a una portada alternativa del libro, pero no hace nada. Tengo un código de respaldo que funciona, pero me gustó más esta solución.
Mi código js:
function mostraTrama(){ try{ switch(this.id){ case "TramaVdR": nodoTramaVdR.setAttribute = ("class", "TramaScelta"); nodoTramaPdL.setAttribute = ("class", "TramaNonScelta"); nodoTramaG.setAttribute = ("class", "TramaNonScelta"); document.body.style.backgroundImage = "url('../Images/way_of_kings_bg.jpg')"; break case "TramaPdL": nodoTramaVdR.setAttribute = ("class", "TramaNonScelta"); nodoTramaPdL.setAttribute = ("class", "TramaScelta"); nodoTramaG.setAttribute = ("class", "TramaNonScelta"); document.body.style.backgroundImage = "url('../Images/words_of_radiance_bg.jpg')"; break case "TramaG": nodoTramaVdR.setAttribute = ("class", "TramaNonScelta"); nodoTramaPdL.setAttribute = ("class", "TramaNonScelta"); nodoTramaG.setAttribute = ("class", "TramaScelta"); document.body.style.backgroundImage = "url('../Images/oathbringer_bg.jpg')"; break } } catch(e){ alert("mostraTrama " + e); } } function gestoreLoadRomanzi(){ try { nodoTramaViaDeiRe = document.getElementById("TramaViaDeiRe"); nodoTramaParoleDiLuce = document.getElementById("TramaParoleDiLuce"); nodoTramaGiuramento = document.getElementById("TramaGiuramento"); nodoTramaVdR = document.getElementById("TramaVdR"); nodoTramaPdL = document.getElementById("TramaPdL"); nodoTramaG = document.getElementById("TramaG"); nodoTramaViaDeiRe.onclick = mostraTrama; nodoTramaParoleDiLuce.onclick = mostraTrama; nodoTramaGiuramento.onclick = mostraTrama; } catch ( e ) { alert("gestoreLoadRomanzi " + e); } }Los tres comienzan con class = "TramaNonScelta", que tiene display: none, y al hacer clic deben cambiar a class = "TramaScelta", que tiene display: inline. Todos los ID coinciden con los que tienen en el documento HTML.
Mi forma alternativa de funcionamiento es tener una función separada para cada libro en lugar de una sola para todos ellos.
EDITAR: También tengo un código muy similar para otro programa que en lugar de usar .setAttribute usa .innerHTML y funciona sin problemas (pero mi profesor no quiere que usemos .innerHTML en este proyecto)