2

我正在使用带有 bxSlider 插件的 jQuery,这里是它的链接,以防万一:http ://bxslider.com/

从滑块中删除某些幻灯片后,我正在尝试重新加载滑块和自定义寻呼机。

这是我尝试过的:

$(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的一个bug,其实当你调用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 回答