1页面
<checkbox-group bindchange=“checkboxChange”>
<checkbox value=“1” checked="" />自动播放
</checkbox-group>
<swiper autoplay="{{autoplay}}" bindchange=“handleSwiper” interval=“5000” current="{{current}}" circular=“true”>
<swiper-item wx:key=“unique” wx:for="{{dataList}}" >
<view>
<text>{{ item.title }}</text>
</view>
</swiper-item>
</swiper>
2 js
Page({
data: {
autoplay: false,
current: 0
},
/**
*监听checkbox事件
*/
checkboxChange: function (e) {
var that = this
that.setData({
autoplay: false
})
}
console.log(that.data.current)
}
handleSwiper: function(e){
var that = this
that.setData({
current: e.detail.current
})
}
3问题描述: 取消自动播放,获取当前current跟Wxml中的current不一致,即是有时候出现执行了checkbox事件,handleSwiper还会执行handleSwiper事件。
这个没什么好办法,只能具体问题具体处理了,比如在你的这个例子里面,在handleSwiper中检查一下that.data.autoplay,如果是false的话就可以认为checkboxChange是已经执行过了的。
在handleSwiper中检查一下that.data.autoplay,如果使用手动切换的话,that.data.autoplay本身就是为false,还是需要执行handleSwiper里面的代码来展示当前current的数据