@desuvin

Как сделать destroy bxslider по селектору?

Возможно глупый вопрос, но в api слайдера не нашел способ уничтожить его без присвоения в переменную.
Везде советуют следующий способ
var slider = $(selector).bxSlider();
а потом вызвать соответствующий метод у slider. Однако такой способ не работает, когда слайдеров на странице неопределенное количество. Если удалить контент в блоке и вставить тот, что было до инициализации слайдера, то слайдер все равно никуда не исчезает. Каким образом можно удалить слайдер bxslider по селектору? Например
$('.bxslider').getBxSlider().destroy()
  • Вопрос задан
  • 823 просмотра
Решения вопроса 1
IonDen
@IonDen
JavaScript developer. IonDen.com
Вы просто не так делаете, свою переменную нужно назначать для каждого слайдера, чтобы запомнить инстанс, а потом уже вызывать метод.
var slider_1 = $(selector).bxSlider(); 
var slider_2 = $(selector).bxSlider(); 
var slider_3 = $(selector).bxSlider(); 

slider_3.destroy();


Получить инстанс из селектора невозможно, так как плагин не предусматривает такой возможности.

Upd: еще вариант, примерно так:

var storage = {};

storage[0] = $(selector).bxSlider(); 
$(selector).data("instance", 0);

storage[1] = $(selector).bxSlider(); 
$(selector).data("instance", 1);

storage[2] = $(selector).bxSlider(); 
$(selector).data("instance", 2);

// и теперь мы может узнать инстанс из селектора
var instanceId = $(selector).data('instance');
var instace = storage[instanseId];
instance.destroy();
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы