jquery как сохранить последний триггер мыши

#jquery #slideshow #intervals

#jquery #слайд-шоу #интервалы

Вопрос:

У меня есть слайд-шоу. При наведении на него курсора интервал очищается.При наведении курсора начинается интервал. Функция интервала перемещает активный класс (который был добавлен при наведении курсора мыши на один из li) в следующий li. Чтобы запустить его, я должен запустить функцию наведения курсора мыши на одном из файлов слайд-шоу. Когда я завершаю работу, я очищаю интервал, но в то же время удаляю активный класс, поскольку мышь больше не находится ни над какими символами li. Итак, пока что я добился того, что слайд-шоу запускается снова, но только с первого li. Как мне сохранить последнее наведение курсора мыши li, а затем запустить слайд-шоу оттуда? Ниже приведен мой код…

 var timer, autoAdvance = function(){$("#accordion-slider li:first").addClass('first');$("#accordion-slider li:last").addClass('last');var currentSlide=$("#accordion-slider .active");var nextSlide=$("#accordion-slider .active").next();(!currentSlide.is('.last'))?$(nextSlide).trigger('mouseover'):$("#accordion-slider .first").trigger('mouseover')/*.next().addClass('next')*/;}
var timer = setInterval(autoAdvance,2000);

$().ready(function() { 
    //using kwicks plugin for slides
$('#accordion-slider').kwicks({  
    max : 500,  
    spacing : 5,
});


$('#accordion-slider').hover(function () {
    clearInterval(timer);
}, function () {
    timer = setInterval(autoAdvance, 2000);
    $("ul#accordion-slider li:first").trigger('mouseover');
        });
  

Ответ №1:

Я бы не сказал, что ваш подход — лучший. Но, я думаю, всему этому нужно учиться. Для хранения данных используйте атрибут data(). вы можете использовать данные на аккордеонном слайдере следующим образом

 //-- set
$("ul#accordian-slider").data("somekey", "somevalue");

//-- get
$("ul#accordian-slider").data("somekey");