Я создаю доску с плитами, которую можно щелкнуть, чтобы изменить цвета. У меня есть кнопка «Очистить панель», которая эффективно очищает доску, чтобы все плитки были белыми снова, но по какой-то причине кнопка работает только во втором клике после перезагрузки каждой страницы. Я пробовал обернуть свой JavaScript в функции готовности документа, но это не помогло. Как я могу заставить его работать с первым щелчком после перезагрузки?Кнопка работает только после второго щелчка после перезагрузки
HTML:
<h1 class="title">Wacky Painter</h1>
<div class="easel">
</div>
<form class="clear_board">
<button type="button" id="clear_button" class="btn" onclick="clearBoard()">Clear Board</button>
</form>
CSS:
body {
font-family: sans-serif;
color: #ff757a;
}
.easel {
width: 300px;
outline: #c8c8c8 5px solid;
margin: 0 auto;
}
.square {
width: 20px;
height: 20px;
outline: thin solid #c8c8c8;
display: inline-block;
margin-top:-2px;
}
form {
margin: 10px auto;
}
.title {
margin: 0 auto;
text-align: center;
padding-bottom: 20px;
}
JavaScript (с JQuery):
window.setUpEasel = function() {
var squareString = "";
for(var i=0; i < 195; i++) {
squareString+='<div class="square"></div>';
}
$('.easel').append(squareString)
}
window.giveColor = function() {
$('.easel').on('click', '.square', function() {
var letters = 'ABCDEF'.split('');
var randomColor = '#';
for (var i = 0; i < 6; i++) {
randomColor += letters[Math.round(Math.random() * 15)];
}
$($(this)).css('background-color', randomColor);
})
}
window.clearBoard = function() {
$('#clear_button').on('click', function() {
$('.square').css('background-color', 'white');
})
}
$(function() {
setUpEasel();
giveColor();
});
Вот рабочий jsfiddle: http://jsfiddle.net/MichelleGlauser/yz6mdx1f/1/
Unrelated мой ответ ниже, у вас есть '$ ($ (это))' в 'giveColor' - что может быть просто' $ (это) '. –