jQuery UI – многоуровневый аккордеон с сортировкой

jQuery UI – многоуровневый аккордеон с сортировкой

Пример как сделать многоуровневый аккордеон и добавить возможность перетаскивать элементы с помощью плагина jQuery UI sortable.

HTML разметка

<div class="accordion-root">
	<div class="accordion">
		<div class="accordion-item">
			<div class="accordion-header">Заголовок 1</div>
			<div>
				...
				<div class="accordion accordion-child">
					<div class="accordion-item">
						<div class="accordion-header">Заголовок 1.1</div>
						<div>...</div>
					</div> 
 					<div class="accordion-item">
						<div class="accordion-header">Заголовок 1.2</div>
						<div>...</div>
					</div> 
					<div class="accordion-item">
						<div class="accordion-header">Заголовок 1.3</div>
						<div>...</div>
					</div> 
				</div>
			</div>
		</div>
	</div>    
 	<div class="accordion">
		<div class="accordion-item">
			<div class="accordion-header">Заголовок 2</div>
			<div>
				...
				<div class="accordion accordion-child">
					<div class="accordion-item">
						<div class="accordion-header">Заголовок 2.1</div>
						<div>...</div>
					</div> 
 					<div class="accordion-item">
						<div class="accordion-header">Заголовок 2.2</div>
						<div>...</div>
					</div> 
					<div class="accordion-item">
						<div class="accordion-header">Заголовок 2.3</div>
						<div>...</div>
					</div> 
				</div>
			</div>
		</div>
	</div> 
 	<div class="accordion">
		<div class="accordion-item">
			<div class="accordion-header">Заголовок 3</div>
			<div>
				...
				<div class="accordion accordion-child">
					<div class="accordion-item">
						<div class="accordion-header">Заголовок 3.1</div>
						<div>...</div>
					</div> 
 					<div class="accordion-item">
						<div class="accordion-header">Заголовок 3.2</div>
						<div>...</div>
					</div> 
					<div class="accordion-item">
						<div class="accordion-header">Заголовок 3.3</div>
						<div>...</div>
					</div> 
				</div>
			</div>
		</div>
	</div> 
</div>
HTML

CSS стили

.accordion-item {
	border: 1px solid #ddd;
	margin: 0 0 10px 0;    
}
.ui-accordion-header {
	padding: 10px;
	background: #fff2d6;
	cursor: pointer;
	outline: none;
}
.ui-accordion-content {
	padding: 10px;
	background: #fff;
}
.portlet-placeholder {
	border: 1px dotted black;
	margin: 0 1em 1em 0;
	height: 50px;
}
CSS

JS

$('.accordion').accordion({
	header: '> .accordion-item > .accordion-header',
	heightStyle: 'content',
	active: true,
	collapsible: true
});

$('.accordion').sortable({
	handle: '.accordion-header',
	connectWith: '.accordion',
	placeholder: 'portlet-placeholder',
	containment: 'document'
});
JS

Результат

08.03.2019, обновлено 10.10.2019
7029
Предыдущая запись Аккордеон jQuery UI

Комментарии

, чтобы добавить комментарий.

Другие публикации

Contenteditable – текстовый редактор
Если добавить атрибут contenteditable к элементу, его содержимое становится доступно для редактирования пользователю, а...
43747
+34
Модальные окна на Fancybox 3
Fancybox 3 плагин галерей и модельных окон, в отличии от второй версии существенно изменилась скорость работы, дизайн и немного API, далее подробнее о вызове модальных окон.
65186
+2
Фиксированное горизонтальное меню с активными пунктами
Пример горизонтального меню для лэндингов, в котором реализовано...
12598
+3
jQuery UI Sortable - перетаскивание элементов
Перетаскивание элементов списков, плитки и строк таблиц с помощью плагина jQuery UI Sortable и методы сохранения...
41661
+13
Стилизация Checkbox
Несколько примеров как изменить внешний вид чекбоксов с помощью CSS, изображений и немного JS.
74173
+3
Пример парсинга html-страницы на phpQuery
phpQuery – это удобный HTML парсер взявший за основу селекторы, фильтры и методы jQuery, которые позволяют...
62991
+26