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