2

私は bxSlider プラグインで jQuery を使用しています

特定のスライドを削除した後、スライダーとカスタム ページャーを再読み込みしようとしています。

これが私が試したことです:

$(function() {
    var slider = $('#slider').bxSlider({
        pagerCustom: '#bx-pager'
    });

    $('.list').on('click', '.delete', function() {
        image = $(this).closest('li').find('[type="hidden"]');

        // image.attr('id') contains a string: image-0, image-1, image-2, etc.
        $('#slider, #bx-pager').find('.' + image.attr('id')).remove(); 

        slider.reloadSlider({
            pagerCustom: '#bx-pager'
        }); // I have also tried: slider.reloadSlider();
    });
});

部分的に動作します。スライダーは問題なくリロードされますが、リロードを実行するとページャーが完全に削除されます。

助けてくれてありがとう。

4

1 に答える 1

11

私が見る限り、これは bxSlider のバグです。実際、reloadSliderメソッドを呼び出すと、内部的にはメソッドdestroySliderinit.

要素が破棄されるdestroySliderメソッドpagerElでは、メソッドでプログラムによって再作成されるため、カスタム要素を使用していない場合は正しいですが、カスタム要素を使用している場合はプログラムでinit再作成できません。

カスタムページャーが使用されているかどうかを確認するようにメソッドを変更するdestroySliderことになりました。この場合、それを削除してはなりません。

これが前です(1294行目):

if(slider.pagerEl) slider.pagerEl.remove();

以降:

if (slider.settings.pagerCustom === '') {
    if(slider.pagerEl) slider.pagerEl.remove();
}

時間ができ次第、GitHub にバグを投稿します。

于 2013-08-09T09:42:48.650 に答える