Vue JS:owl carousel item.index 无法更新数据

Posted

技术标签:

【中文标题】Vue JS:owl carousel item.index 无法更新数据【英文标题】:Vue JS: owl carousel item.index unable to update data 【发布时间】:2022-01-20 02:55:59 【问题描述】:

我遇到了一个问题,即 owl carousel 中发生的事件不会更新函数外部的数据值

这是我的代码:

endScenario: function() 
                $(".owl-carousel").on('changed.owl.carousel', function(e) 
                    this.carouselIndex =  e.item.index;
                    var numCarouselItems = $('.carousel__item').length - 1;


                    if (numCarouselItems === this.carouselIndex) 
                        this.isEndingActive = true
                    
                    

                    console.log(this.carouselIndex)
                    console.log(this.numCarouselItems)
                    console.log("this is inside the owl function : " + this.isEndingActive) 
                );
                console.log("this is outside the owl function : " + this.isEndingActive)
            
data: 
      isEndingActive: false,

用户应该在轮播中滚动,当用户在轮播的最后一张幻灯片时,它将触发 endScenario 函数,该函数假设更新 isEndingActive: false -> true 但是当满足要求时,它不会触发从假到真的变化。有什么原因以及如何纠正这个问题?

【问题讨论】:

【参考方案1】:

好像this的用法 外面的 this 不等于里面的 this 可以通过箭头函数解决

 $(".owl-carousel").on('changed.owl.carousel', e => 

或者你可以保存一个变量

endScenario: function() 
  const self = this;
  $(".owl-carousel").on('changed.owl.carousel', function(e)
     //use self replace this
  );

【讨论】:

现在可以使用了。谢谢!

以上是关于Vue JS:owl carousel item.index 无法更新数据的主要内容,如果未能解决你的问题,请参考以下文章

vue-owl-carousel不能与v-for一起工作。

Owl-carousel 每个项目显示很多 3 个图像 - Laravel

owl-carousel jquery 调取数据循环

Owl Carousel没有识别ng-repeat的元素

在 Fancybox 和 Owl Carousel 中发出打开图像

将angularjs of-repeat应用于owl-carousel