我正在使用带有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();
});
});
部分工作。发生的事情是滑块重新加载得很好,但它在运行重新加载时完全删除了寻呼机。
非常感谢您的帮助。
答案 0 :(得分:11)
只要我看到,这是bxSlider中的一个错误,实际上,当您调用reloadSlider
方法时,内部称为方法destroySlider
和init
。
在destroySlider
方法中,pagerEl
元素被销毁,如果您不使用自定义元素,这是正确的,因为它是在init
方法中以编程方式重新创建的,但是如果您正在使用自定义的,无法以编程方式重新创建。
我最后修改了destroySlider
方法以检查是否使用了自定义寻呼机,在这种情况下不得删除它。
这是之前的(第1294行):
if(slider.pagerEl) slider.pagerEl.remove();
之后:
if (slider.settings.pagerCustom === '') {
if(slider.pagerEl) slider.pagerEl.remove();
}
我会尽快将错误发布在GitHub上。