Я пытаюсь заставить div (.panel div) появляться или исчезать при нажатии div прямо над ним (.accordion divs).
Я пробовал несколько вариантов для кода jQueryно ни один из них не сработал для меня.
Я знаю, что делаю что-то не так, но не могу найти что, так что это то, что у меня есть до сих пор:
HTML:
<div class="accordion">Section 4</div>
<div class="panel">
<p>Lorem ipsum...</p>
</div>
<div class="accordion">Section 5</div>
<div class="panel">
<p>Lorem ipsum...</p>
</div>
<div class="accordion">Section 6</div>
<div class="panel">
<p>Lorem ipsum...</p>
</div>
CSS:
.panel {
display: block;
}
JS
var acc = document.getElementsByClassName("accordion");
$(".panel").hide();
for (var i = 0; i < acc.length; i++) {
acc[i].addEventListener("click", function() {
console.log("test");
$(this).next(".panel").slideToggle();
});
}
Имея то, что у меня есть, я могу скрыть элементы .panel
, и журнал консоли test
печатается правильно,но как только я нажимаю на соответствующий .accordion
div, я получаю следующее сообщение об ошибке:
TypeError: $ (...). next (...). slideToggle не является функцией