我正在使用名为bxSlider的jQuery插件。此滑块有一个功能,称为goToSlide,应将其置于特定的幻灯片上。我在使它起作用并遇到一些奇怪的行为时遇到问题。

这是我的代码:

function changeSlideAfterChangeImage(currentlySelected) {
var currentImageIndex = $('*[data-thumb-image-id="'+currentlySelected+'"]').parent().data("slide-index");

$('.active-slide').removeClass('active-slide');
thisBxSlider.goToSlide( parseInt(currentImageIndex) );

}


变量currentImageIndex为我提供了正确的值,例如“ 5”,但滑块始终一直位于最后一张幻灯片上。

现在换个奇怪的举动...

如果我专门设置了currentImageIndex,则滑块始终会一直转到该幻灯片(即工作正常)。

function changeSlideAfterChangeImage(currentlySelected) {
var currentImageIndex = 5; // THIS WORKS

$('.active-slide').removeClass('active-slide');
thisBxSlider.goToSlide( parseInt(currentImageIndex) );

}


另外,如果我增加currentImageIndex,则滑块会更改并转到正确的幻灯片旁边的幻灯片。

function changeSlideAfterChangeImage(currentlySelected) {
var currentImageIndex = $('*[data-thumb-image-id="'+currentlySelected+'"]').parent().data("slide-index");
currentImageIndex = currentImageIndex + 1; // THIS WORKS CORRECTLY IN THAT IT GOES TO THE SLIDE *AFTER* TO THE CORRECT ONE

$('.active-slide').removeClass('active-slide');
thisBxSlider.goToSlide( parseInt(currentImageIndex) );

}


但是,如果我那么做...。

function changeSlideAfterChangeImage(currentlySelected) {
var currentImageIndex = $('*[data-thumb-image-id="'+currentlySelected+'"]').parent().data("slide-index");
currentImageIndex = currentImageIndex + 1;
currentImageIndex = currentImageIndex - 1; // THIS DOESN'T WORK - THE SLIDER JUST SITS ON THE LAST SLIDE

$('.active-slide').removeClass('active-slide');
thisBxSlider.goToSlide( parseInt(currentImageIndex) );

}


也不起作用...

function changeSlideAfterChangeImage(currentlySelected) {
var currentImageIndex = $('*[data-thumb-image-id="'+currentlySelected+'"]').parent().data("slide-index");
currentImageIndex = currentImageIndex + 1;
var tryAnotherVar = currentImageIndex - 1; // THIS DOESN'T WORK - THE SLIDER JUST SITS ON THE LAST SLIDE

$('.active-slide').removeClass('active-slide');
thisBxSlider.goToSlide( parseInt(tryAnotherVar) );

}


我完全迷住了..有什么想法吗?

最佳答案

滑块似乎不是问题,而是currentImageIndex的值。


如果值超出范围(例如,如果有5张幻灯片0..4,则您不能转到幻灯片#5,因为索引是从零开始的,而最后一张幻灯片是#4),这与您的特定示例无关,只是一个一般的想法它可能不起作用。
该值不是整数

如果您进行更改,可以轻松检查

var currentImageIndex = 5; // THIS WORKS




var currentImageIndex = '5';


您将看到它也将起作用。所以我想$('*[data-thumb-image-id="'+currentlySelected+'"]').parent().data("slide-index")的值不同于5(也许包括特殊字符,等等)


至于另一个例子

currentImageIndex = currentImageIndex + 1;
currentImageIndex = currentImageIndex - 1; // THIS DOESN'T WORK - THE SLIDER JUST SITS ON THE LAST SLIDE


这很容易:加1减1等于相同的值。

09-18 00:26