Помочь с onseek и селекторами
Я использую это:
$(function() {
// initialize scrollable
window.api = $("div.scrollable").scrollable({
clickable: true,
activeClass: "active",
onSeek: function() {
alert("current position is: " + this.getIndex());
//remove highlighting from all images
$(".items img").removeClass("selected");
var position = this.getIndex().toString();
var thisItem = $(".items:nth-child(" + position + ")");
//var thisItem = allItems(this.getIndex);
alert("item is: " + $(this).attr('alt'));
changeimage($(".items:nth-child(2)"));
}
}).circular().autoscroll({
interval: 4000,
api: true,
autoplay: false,
steps: 1
});
});
(только тестирование), чтобы я мог проанализировать текущий элемент в своей функции changeimage(), но все, что я получаю в своих оповещениях, не определено. Что мне нужно сделать, чтобы получить текущий товар
1 ответ
Вы можете получить текущий элемент, используя API, вызвав следующее:
var currentItem = window.api.getItems().eq(window.api.getIndex());
Функция getIndex() получает числовую позицию элемента, а getItems получает объект jquery со всеми элементами внутри него. Использование функции eq() запрашивает элемент в заданной позиции.
Иногда мне не везло с этим, но в обратном вызове onSeek вы должны иметь возможность использовать переменную 'this' вместо windows.api, которая будет выглядеть следующим образом:
var currentItem = this.getItems().eq(this.getIndex());