Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   отследить динамическое изменение класса (https://javascript.ru/forum/jquery/50865-otsledit-dinamicheskoe-izmenenie-klassa.html)

swess 14.10.2014 23:40

отследить динамическое изменение класса
 
Предистория:
Есть некий слайдер на jquery - при каждой смене слайда загорается его порядковый номер - реализованный в виде списка - где текущему li присваивается класс current

Требуется:
отследить как очередной li станет current и при этом событии выполнить некую функцию

Пробуем:
$('li.current').css('color','#ccc')
- отрабатывает только раз после загрузки страницы - как поймать смену слайда, например тот факт что класс current перешел на следующий элемент? какое событие ловить?

Желаемое:
if ($(li#myid.current)).lenght) {делаем то что хотели}


заранее извиняюсь за вопросы новичка

danik.js 15.10.2014 00:01

Слайдеру наверняка можно передать опции, в том числе и callback-функцию, вызываемую при переходах. Смотри документацию по своему слайдеру.

swess 15.10.2014 00:13

То есть поймать динамическое изменение класса у элемента нельзя?

danik.js 15.10.2014 00:17

Нет, нельзя. Можно, но кроссбраузерно слелать это трудно. Короче - это не то что тебе нужно даю гарантию 100%.
Лучше залезть в исходник и добавить коблэк, если он не предусмотрен.

swess 15.10.2014 00:31

а если не сложно можете одним глазом взглянуть на доку - что-то я не понимаю предусмотрен он или нет

http://www.sequencejs.com/developers/documentation/

danik.js 15.10.2014 00:50

Трудно было по слову callback поискать?
http://www.sequencejs.com/developers...ion/#callbacks

swess 15.10.2014 00:59

Спасибо разобрался все работает

Specifying Callbacks

By using the variable that the Sequence object is stored in, you can add custom code to Sequence’s callbacks, like so:

<script type="text/javascript">
$(document).ready(function(){
var options = {
autoPlay: true,
autoPlayDelay: 3000
}
var sequence = $("#sequence").sequence(options).data("sequence" );

sequence.beforeCurrentFrameAnimatesOut = function(){
//add code to execute here, such as:
alert("Do something before the CURRENT frame animates out");
};

sequence.beforeNextFrameAnimatesIn = function(){
//add code to execute here, such as:
alert("Do something before the NEXT frame animates in");
};
});
</script>


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