Повторная инициализация библиотеки Javascript из обратного вызова - PullRequest
0 голосов
/ 01 октября 2019

Мне нужно включить и отключить RTL на Swiper, но он не имеет rtl в качестве опции Javascript , только как атрибут HTML , добавив dir="rtl" в swiper-container.

Итак, как подсказывает создатель библиотеки, я пытаюсь добавить этот атрибут. При добавлении он мгновенно размещает слайды в обратном порядке (справа налево), но не позволяет прокрутить таким образом, только слева направо.

Вот код, который я использую (проверьте обратный вызов on: resize)

$('.js-carousel').each(function(){
  var $this = $(this);

  var carousel = new Swiper($(this), {
    slidesPerView: 2.2,
    spaceBetween: 22,
    grabCursor: true,
    speed: 550,

    // Free mode
    freeMode: true,
    freeModeMomentumRatio: 1,
    freeModeMomentumVelocityRatio: 1.5,
    freeModeMomentumBounceRatio: 1,
    freeModeMinimumVelocity: 0.02,
    freeModeSticky: false,

    // Touch Resistance
    resistanceRatio: 0.85,

    // Prevent blurry texts
    roundLengths: true,

    // Events
    on: {
      resize: function () {
        this.$el.attr("dir", "rtl"); // <== Here I add attribute on window resize
        this.rtl = true; // <== Here I set the rtl boolean
        this.update(); // <== Here I should reinitialize the carousel? This command seems not to work
      },
    }

});
...