重新加载,刷新,解除绑定,销毁,生活,javascript / jquery函数......应该怎么做?

时间:2012-11-04 20:12:25

标签: javascript jquery

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


我之前从未这样做,因此我无法在谷歌中指出解决方案。

我有一个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-minislider div中可见幻灯片的数量,这意味着新的可见幻灯片数会导致幻灯片放映不起作用。我想它需要重新计算新的幻灯片数量。

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

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

bikeFilter = function (y) {

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

    bikeSlider();

    return false;

}

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

或重新加载/刷新原始功能,以便重新计算新的幻灯片数量?


任何指针都会非常有用。

谢谢。

1 个答案:

答案 0 :(得分:0)

据我了解你不需要重新创建滑块,但你可以通过调用两次

来完成
bxSlider()

根据文档,你需要通过

重新启动滑块
reloadShow()
//Reinitialize a slide show

有关详细信息,请参阅公共职能

部分 bxslider

您需要为slider-object

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

    mySlider.reloadShow();
})