Есть идеи, почему не работает аккордеон? Я новичок :(
Я понятия не имею, что с этим не так.
<!DOCTYPE HTML>
<html lang = "en">
<head>
<meta charset = "utf-8">
<title>jQuery Accordion</title>
<script type = "text/javascript"
<script> src = "http://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script type = "text/javascript">
$( function() {
$("#accordion").accordion();
} );
</script>
</head>
<body>
<div id = "accordion">
<h3>Section 1</h3>
<div>
Stuff
</div>
<h3>Section 2</h3>
<div>
Stuff
</div>
<h3>Section 3</h3>
<div>
Stuff
<ul>
<li>List item one</li>
<li>List item two</li>
<li>List item three</li>
</ul>
</div>
<h3>Section 4</h3>
<div>
Stuff
</div>
</div>
</body>
</html>
Инициализировать аккордеон на готовом документе
Вы добавили бутстрап в свой HTML? accordion принадлежит bootstrap или jquery-ui, а не jquery
@Tej, что вы имеете в виду под инициализацией? я что-то пропустил?
Функция accordion () основана на jQueyUI, jQuery не содержит ее. Вы должны вызвать jQuryUI перед своей функцией инициализации. Наконец, удалите строку 6: «<script type =« text / javascript »»



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


<script type = "text/javascript"
<script> src = "http://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
Ваш HTML недействителен. Теги должны быть закрыты, а атрибуты тега должны располагаться сразу после тега < перед его >.
Также необходимо включить jquery-ui. Видеть:
$(function() {
$( "#accordion" ).accordion();
});<!DOCTYPE HTML>
<html lang = "en">
<head>
<meta charset = "utf-8">
<title>jQuery Accordion</title>
<script src = "http://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src = "https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
</head>
<body>
<div id = "accordion">
<h3>Section 1</h3>
<div>
Stuff
</div>
<h3>Section 2</h3>
<div>
Stuff
</div>
<h3>Section 3</h3>
<div>
Stuff
<ul>
<li>List item one</li>
<li>List item two</li>
<li>List item three</li>
</ul>
</div>
<h3>Section 4</h3>
<div>
Stuff
</div>
</div>
</body>
</html>Похоже, вы использовали функцию .accordion () из пользовательского интерфейса jQuery, но не добавили файл. Также источник вашего файла jquery неверен. Я вставляю сюда правильный код. Я использовал простую функцию переключения jquery, чтобы сделать это. Я также добавляю CSS в заголовок. Вы можете записать его в свой файл CSS, если используете какой-либо внешний.
<!DOCTYPE HTML>
<html lang = "en">
<head>
<meta charset = "utf-8">
<title>jQuery Accordion</title>
<style>
*{
margin: 0px;
padding: 0px;
}
.stuff {
display: none;
padding: 10px;
}
.stuff.active {
display: block;
}
</style>
<script src = "http://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("#accordion h3").click(function(){
var stuff = $(".stuff");
$(stuff).slideUp();
$(this).next(".stuff").slideDown();
});
});
</script>
</head>
<body>
<div id = "accordion">
<h3>Section 1</h3>
<div class = "stuff active"> Stuff </div>
<h3>Section 2</h3>
<div class = "stuff"> Stuff </div>
<h3>Section 3</h3>
<div class = "stuff"> Stuff
<ul>
<li>List item one</li>
<li>List item two</li>
<li>List item three</li>
</ul>
</div>
<h3>Section 4</h3>
<div class = "stuff"> Stuff </div>
</div>
</body>
</html>
ЧЧХХХПроверьте свою клавиатуру.