У меня есть этот выпадающий список, который имеет два варианта, синий и зеленый. Если я выберу синий, то всякий раз, когда я нажимаю на поле ввода текста, его фон переключается между синим и черным, что является цветом фона текстового поля. То же самое касается красного варианта. Тем не менее, код, который я работал только в первый и второй раз. С третьего раза, даже если я выберу красный, он переключается между синим и другим цветом. Это мой HTML:
Кто-нибудь знает, что не так? Я думаю, может быть, я не до конца понимаю, как работает функция изменения jquery.
$('#change_color').on('change', function() {
//get the text value of the option chosen
var colorOption = $("#change_color option:selected").text();
//if option chosen is red then allow change input box to red
if (colorOption === 'Red') {
$('.my-input').click(function(inputBox) {
$(inputBox.target).toggleClass('red');
});
}
//if option is chosen is red then allow change input box to blue
else {
$('.my-input').click(function(inputBox) {
$(inputBox.target).toggleClass('blue');
});
}
});
.my-input {
background-color: black;
width: 5%;
font-size: 3vw;
}
.red {
background-color: red;
width: 5%;
font-size: 3vw;
}
.blue {
background-color: blue;
width: 5%;
font-size: 3vw;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select id="change_color" class="form-control box-border" placeholder="SPECIAL CHAR">
<option selected disabled>Special Char</option>
<option>Red</option>
<option>Blue</option>
</select>
<input type="text" class="my-input">
<input type="text" class="my-input">
<input type="text" class="my-input">