我正在使用名为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等于相同的值。