0

我的问题标题可能看起来令人困惑,让我们解释一下我的情况。任何帮助将非常感激。


我以前从未这样做过,因此我无法在谷歌中找到解决方案。

我有一个 jquery 幻灯片,我将其包装在一个函数中,因为我有一些附加动画要配合它,请参见下文...

// my slider function
bikeSlider = function () {

    var slider = $('#bike-minislider').bxSlider({

        displaySlideQty: 5,
        infiniteLoop: false,
        hideControlOnEnd: true                      

    });

    $('#bike-minislider-fade').fadeIn();

};

// this runs the function
bikeSlider();

如您所见,在该bikeSlider函数之后,我立即使用...运行该函数bikeSlider();

现在稍后,我使用 jquery 在幻灯片中隐藏了一些幻灯片.hide()

因为我的 jquery 幻灯片功能,计算#bike-minisliderdiv 内可见幻灯片的数量,这意味着新的可见幻灯片数量导致幻灯片无法工作。我想它需要重新计算新的幻灯片数量。

简而言之,我认为这可以通过bikeSlider();再次运行该函数来解决。

所以我在下面尝试了这个,但它没有用。

bikeFilter = function (y) {

    $('.bike').fadeOut();
    $('.bike[data-group=' + y + ']').fadeIn();

    bikeSlider();

    return false;

}

如您所见,我正在尝试重新运行该功能bikeSlider();-但它似乎是在旧功能的顶部运行它,所以我的问题是,如何在再次运行之前删除原始幻灯片功能。

或者重新加载/刷新原始函数,以便重新计算新的数字幻灯片?


任何指针都会很有帮助。

谢谢你。

4

1 回答 1

0

据我了解,您不需要重新创建滑块,但您只需调用两次即可

bxSlider()

根据文档,您需要重新初始化滑块

reloadShow()
//Reinitialize a slide show

有关更多信息,请查看公共功能部分中的bxslider

您需要为滑块对象调用 reloadShow()

var mySlider;
$(function(){
    mySlider= $('#bike-minislider').bxSlider({
        auto: true,
        controls: true
    });

    mySlider.reloadShow();
})
于 2012-11-04T20:22:22.463 回答