Я пытаюсь отобразить нижнее сообщение о продукте в списке, когда кто-то нажимает на один или несколько флажков. Но я ничего не вижу внутри своей страницы.
Код:
<style>
.box{
color: #eee;
padding: 20px;
display: none;
margin-top: 20px;
}
.green{ background: #228B22; }
label{ margin-right: 15px; }
</style>
// loop to display the products with the checkbox
while($Qlisting->fetch()) {
...
echo '<label><input type = "checkbox" name = "colorCheckbox" value = "green"> green</label>';
...
}
<div class = "green" style = "display:none;">Your message</div>
<script type = "text/javascript">
$(document).ready(function(){
$('input[type = "checkbox"]').click(function(){
var inputValue = $(this).attr("value");
$("." + inputValue).toggle();
});
});
</script>
Toggle() используется для интервала между display:inline и display:none;
В настоящее время вы пытаетесь переключить элементы без классов, соответствующих вашему селектору. ('.' + inputValue)
Создайте сообщение, которое вы хотите отобразить внутри div с тем же классом, что и соответствующее значение флажка.
Пример:
$(document).ready(function(){
$('input[type = "checkbox"]').click(function(){
var inputValue = $(this).attr("value");
$("." + inputValue).toggle();
});
});
<script src = "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<label><input type = "checkbox" name = "colorCheckbox" value = "green"> green</label>
<div class = "green" style = "display:none;">Your message</div>
Спасибо, это работает (внутри лоппа), но не так, как я ожидал. Извините, это моя ложь. Я обновил приведенный выше код, чтобы вы могли сделать то, что я пытаюсь сделать. Сообщение должно появиться один раз, если я нажму на флажок, а не внутри цикла.
Какая актуальность в вашем коде
<style>
?