La totalidad del código funciona, pero cuando copio el código en el sitio web de mis amigos, el color no se actualiza como lo haría normalmente. No estoy seguro de por qué no está funcionando ahora.
[https://pastebin.com/jm8s6gzX][1]
function loadPalletes() { let colorIndexNum = 0; for(let palletes in penguinColors) { let colorHex = penguinColors[palletes], colorIndex = palletes, colorIndexCurrNum = ++colorIndexNum; $('#palletes').append(`<div data-id="${colorIndexCurrNum}" class="tinyPallete" style="background: #${colorHex}"></div> `); } $("#palletes").on("click", function(e) { let palletId = $(e.target).attr('data-id'); e.currentTarget.querySelector('.active') ?.classList.remove('active'); if(e.target.classList.contains('tinyPallete')) { e.target.classList.add('active'); } $("#penguinDoll").css('background-color', penguinColorByIndex(palletId, false)); console.log("color updated?") }); } function penguinColorByIndex(index, keys) { if(keys) { return(Object.keys(penguinColors)[--index]); } return(Object.values(penguinColors)[--index]); } let penguinColors = { "Blue": "003366", "Green": "009900", "Pink": "FF3399", "Black": "333333", "Orange": "FF6600", "Yellow": "FFCC00", "Dark Purple": "660099", "Brown": "996600", "Red": "CC0000", "Dark Green": "006600", "Light Blue": "0099CC", "Lime Green": "8AE302", "Gray": "93A0A4", "Aqua": "02A797", "Arctic White": "F0F0D8" }; window.onload = function() { loadPalletes(); }Adjunté un pastebin de toda la página de índice.
El problema es esta línea:
$("#penguinDoll").css('background-color', penguinColorByIndex(palletId, false));
Y específicamente el valor devuelto de penguinColorByIndex , que es solo el valor hexadecimal (por ejemplo, 333333 ).
Necesita agregar un hash para que sea válido, como:
$("#penguinDoll").css('background-color', '#' + penguinColorByIndex(palletId, false));
Por lo tanto, está configurando #333333 y no 333333 .