禁用 onSlideChangeEnd 侦听器

Disable onSlideChangeEnd listener

我想在我的 Swiper 组件上禁用我的 onSlideChangeEnd 回调。

如果用户单击箭头,那么我想执行我的 onSlideChangeEnd 回调方法,但是如果我想以编程方式滑动到特定图像,我不想调用 onSlideChangeEnd。否则我会遇到混乱的侦听器循环情况。

我该怎么做?

我正在考虑拥有某种旗帜。如果此标志设置为 false,则不会执行回调代码,如下所示:

    galleryTop = new Swiper('.gallery-top-product-view', { //'.gallery-top'
        nextButton: '.swiper-button-next',
        prevButton: '.swiper-button-prev',
        spaceBetween: 10,
        onSlideChangeEnd: function (swiper) {
            if(someFlag)
                doIt();

        }
    });

但是回调对象似乎引用了旧变量值。当我这样使用 'someFlag' 时,它似乎有点随机:

    someFlag= true;

    galleryTop.slideTo(key);

    someFlag= false;

我是否遗漏了一些有关如何禁用侦听器的基本知识?

根据 swiper 文档 (http://www.idangero.us/swiper/api/),您可以将第三个参数 runCallbacks 作为 false 传递,以防止执行回调: galleryTop.slideTo(key, speed, false);