显然,您谈论的是 2.0 beta 版本,因为您使用的是to.owl.carousel
. 我不会采用 Leif 的解决方案,因为它在很多情况下都行不通。所以这是你可以做的:
$('.owl-carousel').on('click', '.owl-item', function(e) {
var carousel = $('.owl-carousel').data('owl.carousel');
e.preventDefault();
carousel.to(carousel.relative($(this).index()));
});
这是一个演示。但请注意它是测试版,可能会改变。您还必须使用最新的开发。
根据您使用的插件(导航),您必须to
像这样编写调用:
carousel.to(carousel.relative($(this).index()), false, true);
以下是一些解释:
$(this).index()
是 jQuery 的一部分,并为您提供单击项目.owl-item
在其容器中的位置。
$('.owl-carousel').data('owl.carousel')
为您提供 Owl Carousel 的插件对象,因此您可以直接使用 API,而无需使用插件方法 ( $('.owl-carousel').owlCarousel('method', 'arg')
) 或 jQuery 事件 ( $('.owl-carousel').trigger('method', ['arg'])
)。
carousel.relative($(this).index())
为您提供单击项目的相对位置。当您激活时,这总是必要的loop
,它使用克隆项目,因此在启动插件之前您有更多项目。
carousel.to()
只接受相对位置。