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

私が理解したように、スライダーを再作成する必要はありませんが、2回呼び出すことで正確にこれを行います

bxSlider()

docによると、スライダーを再初期化する必要があります

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 に答える