Witam wszystkich bardzo serdecznie. Jestem dość początkujący i utknąłem z jednym problemem. Niestety nie mogę dodać pełnego kodu, jednak objaśnię tutaj strukturę oraz zastosowane rozwiązania.
Korzystam ze slidera SplideJS.
Struktura wygląda mniej więcej tak:
<section>
<div class='city__table'>
<a href="#" data-city-link="miasto" > Nazwa miasta</a>
<a href="#" data-city-link="miasto" > Nazwa miasta</a>
<a href="#" data-city-link="miasto" > Nazwa miasta</a>
<a href="#" data-city-link="miasto" > Nazwa miasta</a>
</div>
<div class='city__table'>
<a href="#" data-city-link="miasto" > Nazwa miasta</a>
<a href="#" data-city-link="miasto" > Nazwa miasta</a>
<a href="#" data-city-link="miasto" > Nazwa miasta</a>
<a href="#" data-city-link="miasto" > Nazwa miasta</a>
</div>
<div>
<ul class='SplideJS'>
<li data-city-name> Tutaj zdjęcie miasta </li>
<li data-city-name> Tutaj zdjęcie miasta </li>
<li data-city-name> Tutaj zdjęcie miasta </li>
</ul>
</div>
</section>
Dwa pierwsze divy generowane są przez PHP (lista 40 miast podzielona na dwa divy po równo)
atrybut data-city-link posiada nazwę miasta pobraną z tablicy owych miast
Trzeci div zawiera slider (SplideJS) i zawiera zmieniające się zdjęcia co 4 sekundy, każdy element listy ma dopisany atrybut data-city-name, który jest identyczny z atrybutem data-city-link
Aktualnie widoczny slide otrzymuje ze SplideJS klasę "is-active".
Teraz mój problem:
Chciałbym w JS przechwycić aktualnie wyświetlony slajd, odczytać z niego atrybut data, odnaleźć w jednym z poprzednich divów ten sam atrybut data oraz nadać na czas widoczności slajdu inną klasę dla <a> o odpowiednim atrybucie data.
Próbowałem to wykonać za pomocą:
1. Pobrania wszystkich elementów poprzez querySelectorAll( poprzez klasę ). W pętli for spróbowałem ustawić MutationObserver korzystając stąd: Developer Mozilla
Niestety nic to nie dało - jest ogromne prawdopodobieństwo, że coś robiłem źle lub kompletnie nie zrozumiałem działania MutationObserver. Chciałem tutaj wkleić kod, jednak nerwy wygrały i usunąłem cały kod, pozostawiając jedynie pobranie elementów...
2. Nie znalazłem także żadnego eventu w addEventListener aby mógł pasować do mojego problemu.
Prosiłbym chociaż o nakierowanie mnie, abym mógł w jakiś sposób to rozwiązać.