Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/427.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript &引用;这";在刷卡器事件中,是窗口,而不是刷卡器_Javascript_Events_Swiper - Fatal编程技术网

Javascript &引用;这";在刷卡器事件中,是窗口,而不是刷卡器

Javascript &引用;这";在刷卡器事件中,是窗口,而不是刷卡器,javascript,events,swiper,Javascript,Events,Swiper,我有一个带有多个滑块的简单页面。每个滑块由三个滑块组成;左、中、右。如果更改了另一个滑块,我想将所有滑块重置为中间位置。将其视为一个UI,在该UI中,您向左或向右滑动以显示可以对列表中的项目执行的操作。我不希望多个项目同时显示它们的操作-因此,在其中一个项目上滑动应该将所有其他项目重置回其初始状态 文档中说,在滑块事件中,“this”总是指有问题的滑块,但出于某种原因,它指的是窗口,我不明白为什么 下面是一个简单的例子 你能发现我做错了什么吗?那是因为你在传递给刷卡器的选项中使用了箭头函数作为s

我有一个带有多个滑块的简单页面。每个滑块由三个滑块组成;左、中、右。如果更改了另一个滑块,我想将所有滑块重置为中间位置。将其视为一个UI,在该UI中,您向左或向右滑动以显示可以对列表中的项目执行的操作。我不希望多个项目同时显示它们的操作-因此,在其中一个项目上滑动应该将所有其他项目重置回其初始状态

文档中说,在滑块事件中,“this”总是指有问题的滑块,但出于某种原因,它指的是窗口,我不明白为什么

下面是一个简单的例子


你能发现我做错了什么吗?

那是因为你在传递给刷卡器的选项中使用了箭头函数作为
slideChange
属性的值

箭头函数使用父作用域,而不是使用新的作用域:

您只需使用
swiper
变量,而不必使用
this

slideChange: () => {
                    swipers.forEach(swiperItem => {
                        if(swiper != swiperItem) swiperItem.slideTo(1);
                    })
                }
另一个选项是单独添加事件侦听器:

var swiper = ...;
swiper.on('slideChange', () => ...)
var swiper = ...;
swiper.on('slideChange', () => ...)