Owl 轮播在 ajax 调用后跳转到特定索引
Owl carousel jumpt to specific index after ajax call
我正在使用 owl 轮播 2。我的页面上有几个按钮。单击其中一个按钮时,将出现 AJAX 调用。从那个 ajax 调用中得到一个图像 ID。我将该图像 ID 与 owl 轮播中的一个进行比较,然后想跳转到匹配的幻灯片。
不过,随便我试索引号returns0
。所以 owl 总是跳到第一张图片。我尝试了几件事,但就是无法正常工作。
我的按钮列表
<div class="spo-list">
<div class="spo-item" data-image="47059110">Dunkelrot</div>
<div class="spo-item" data-image="47059111">Rot</div>
</div>
我的滑块
<div class="thumbnail-slider-container">
<div id="thumbnailSlider" class="thumbnail-slider owl-carousel">
<div data-imageid="47059110"><img src="image" /></div>
<div data-imageid="47059111"><img src="image" /></div>
</div>
</div>
代码
$('.spo-item').on('click', function(){
var img = $(this).data('image')
var url = link-to-page
$.ajax({
url: url,
success:function(data) {
var next_id = data.image_id // the ID that comes from the call like '47059110'
var next_slide = var next_slide = $('#thumbnailSlider').find('div[data-imageid="'+next_id+'"]').closest('.owl-item').index()
console.log(next_slide)
$('#thumbnailSlider').trigger('to.owl.carousel', [next_slide, 300, true]);
// this jumps to first image since "next_slide" always is 0
}
});
});
我只是看不出获取索引有什么问题。我用这个 question 作为参考。
有什么想法吗?提前致谢
好的,我找到了问题的答案!
问题是我试图获取错误元素的索引。 Owl 轮播将每个项目包装在一个名为 owl-item
的 div 中。因此,当您尝试获取某个项目的索引号时,它将始终为索引 0,因为包装元素中只有一个项目。实际的 html 看起来像这样:
<div class="thumbnail-slider-container">
<div id="thumbnailSlider" class="thumbnail-slider owl-carousel">
<div class="owl-item"><div data-imageid="47059110"><img src="image" /></div></div>
<div class="owl-item"><div data-imageid="47059111"><img src="image" /></div></div>
</div>
</div>
因此,要获得正确的索引,您需要使用:
var next_slide = $('#thumbnailSlider').find('div[data-imageid="'+next_id+'"]').closest('.owl-item').index()
我正在使用 owl 轮播 2。我的页面上有几个按钮。单击其中一个按钮时,将出现 AJAX 调用。从那个 ajax 调用中得到一个图像 ID。我将该图像 ID 与 owl 轮播中的一个进行比较,然后想跳转到匹配的幻灯片。
不过,随便我试索引号returns0
。所以 owl 总是跳到第一张图片。我尝试了几件事,但就是无法正常工作。
我的按钮列表
<div class="spo-list">
<div class="spo-item" data-image="47059110">Dunkelrot</div>
<div class="spo-item" data-image="47059111">Rot</div>
</div>
我的滑块
<div class="thumbnail-slider-container">
<div id="thumbnailSlider" class="thumbnail-slider owl-carousel">
<div data-imageid="47059110"><img src="image" /></div>
<div data-imageid="47059111"><img src="image" /></div>
</div>
</div>
代码
$('.spo-item').on('click', function(){
var img = $(this).data('image')
var url = link-to-page
$.ajax({
url: url,
success:function(data) {
var next_id = data.image_id // the ID that comes from the call like '47059110'
var next_slide = var next_slide = $('#thumbnailSlider').find('div[data-imageid="'+next_id+'"]').closest('.owl-item').index()
console.log(next_slide)
$('#thumbnailSlider').trigger('to.owl.carousel', [next_slide, 300, true]);
// this jumps to first image since "next_slide" always is 0
}
});
});
我只是看不出获取索引有什么问题。我用这个 question 作为参考。
有什么想法吗?提前致谢
好的,我找到了问题的答案!
问题是我试图获取错误元素的索引。 Owl 轮播将每个项目包装在一个名为 owl-item
的 div 中。因此,当您尝试获取某个项目的索引号时,它将始终为索引 0,因为包装元素中只有一个项目。实际的 html 看起来像这样:
<div class="thumbnail-slider-container">
<div id="thumbnailSlider" class="thumbnail-slider owl-carousel">
<div class="owl-item"><div data-imageid="47059110"><img src="image" /></div></div>
<div class="owl-item"><div data-imageid="47059111"><img src="image" /></div></div>
</div>
</div>
因此,要获得正确的索引,您需要使用:
var next_slide = $('#thumbnailSlider').find('div[data-imageid="'+next_id+'"]').closest('.owl-item').index()