Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как присвоить class определенному элементу списка? (https://javascript.ru/forum/misc/76422-kak-prisvoit-class-opredelennomu-ehlementu-spiska.html)

oleglantukh 10.01.2019 13:01

Как присвоить class определенному элементу списка?
 
Доброе время суток!
Помогите пожалуйста решить задачу.
Есть простой список из n-го количества элементов
<ul>
     <li></li>
     <li></li>
     <li></li>
     <li></li>
</ul>

Еще есть точно такое же количество элементов кнопок
<div class="owl-dots">
    <button role="button" class="owl-dot"></button>
    <button role="button" class="owl-dot"></button>
    <button role="button" class="owl-dot active"></button>
    <button role="button" class="owl-dot"></button>
</div>

Кнопки принадлежат к плагину Owl Carousel и текущий элемент выделяется классом "active".

Суть задачи в следующем, необходимо присваивать class active или current нужному элементу списка в зависимости от того, какой button на текущей момент имеет class active.

Думаю связать элементы списка и кнопки data-атрибутами, например должно получится примерно так:
<ul>
    <li data-item="1"></li>
    <li data-item="2"></li>
    <li data-item="3" class="current"></li>
    <li data-item="4"></li>
</ul>

<div class="owl-dots">
    <button data-item="1" role="button" class="owl-dot"></button>
    <button data-item="2" role="button" class="owl-dot"></button>
    <button data-item="3" role="button" class="owl-dot active"></button>
    <button data-item="4" role="button" class="owl-dot"></button>
</div>

Помогите пожалуйста написать скрипт, который будет находить button с классом active и присваивать класс active или current нужному элементу списка

рони 10.01.2019 13:13

oleglantukh,
https://owlcarousel2.github.io/OwlCa...pi-events.html

oleglantukh 10.01.2019 14:13

Цитата:

Сообщение от рони (Сообщение 501698)

Дело в том что сам список отношения к плагину не имеет, мне нужен скрипт, который будет отслеживать какая кнопка в данный момент имеет класс active и присваивать класс элементу списка с таким же data-атрибутом

рони 10.01.2019 14:48

oleglantukh,
по ссылке, первый пример, это то что вам нужно! никаких data-атрибут для этого не требуется, достаточно добавить class для ul.

oleglantukh 10.01.2019 23:20

Цитата:

Сообщение от рони (Сообщение 501706)
oleglantukh,
по ссылке, первый пример, это то что вам нужно! никаких data-атрибут для этого не требуется, достаточно добавить class для ul.

Я понял, спасибо большое! Буду разбираться

рони 11.01.2019 09:04

oleglantukh,
//возможно event.page.index
$('.owl-carousel').on('changed.owl.carousel', function(event) {
    $('ul li').removeClass('current').eq(event.item.index).addClass('current')
})

oleglantukh 12.01.2019 18:35

Цитата:

Сообщение от рони (Сообщение 501747)
//возможно event.page.index

Спасибо большое, ваше решение помогло!
Вот готовый рабочий скрипт:

$('.owl-carousel').on('changed.owl.carousel', function(event) {
	$('ul li').removeClass('current').eq(event.page.index).addClass('current')
})


Часовой пояс GMT +3, время: 16:00.