- Я отправил предыдущий вопрос, и кто-то ответил с этим кодом:
HTML:шестнадцатеричные цвета не работают на целевой стиль BackgroundColor
<table class="bingo">
<tr>
<td id="square0"></td>
<td id="square1"></td>
<td id="square2"></td>
</tr>
<tr>
<td id="square3"></td>
<td id="square4"></td>
<td id="square5"></td>
</tr>
<tr>
<td id="square6"></td>
<td id="square7"></td>
<td id="square8"></td>
</tr>
</table>
JS:
var toggleHighlight = function (e) {
var bg = e.target.style.backgroundColor;
if (bg == 'red') {
e.target.style.backgroundColor = '';
} else {
e.target.style.backgroundColor = 'red';
}
}
var prepareTable = function() {
var cells = document.getElementsByTagName("td");
for (var i = 0 ; i < cells.length ; i++) {
cells[i].onclick = function(event) {
toggleHighlight(event);
}
}
}
document.onload = prepareTable();
Вышеприведенный код показан здесь: http://jsfiddle.net/nyzswnx2/47/
Однако, когда я изменил красный цвет на #cecece, и мне удалось щелкнуть по каждой ячейке, которая превращает ячейку от белого до светло-серого. Однако, когда я снова нажимаю светло-серая ячейка, она не превратит ячейку от светло-серого до белого. Как это исправить?
http://jsfiddle.net/RE006/nyzswnx2/82/
// e is parameter
var toggleHighlight = function (e) {
var bg = e.target.style.backgroundColor;
if (bg == "#cecece") {
e.target.style.backgroundColor = "#fff";
} else {
e.target.style.backgroundColor = "#cecece";
}
}
/* getting a list from "td" will return a list, it is need for a loop to store the cells passes event as argument */
var prepareTable = function() {
var cells = document.getElementsByTagName("td");
for (var i = 0 ; i < cells.length ; i++) {
cells[i].onclick = function(event) {
toggleHighlight(event);
}
}
}
//calls the function
document.onload = prepareTable();
Пожалуйста, сделать 'console.log (BG)' отлаживать действительно ли этот цвет возвращается как '# cecece' после установки его – Bergi
цвета хранятся в виде' RGB() 'значения. Либо проверьте значение rgb, конвертируйте его в шестнадцатеричный код перед своим состоянием, либо используйте классы. –
Шестнадцатеричный: когда я нажимаю на белую ячейку, чтобы сделать ее светло-серой, под консолью: я получаю: пустую строку, а ячейка превращается из белого в светло-серый. Я щелкаю по светло-серой клетке, под консолью, получаю: rgb (206, 206, 206), и ячейка остается светло-серой. – user5117220