微信扫码登录

其他登录方式

绑定手机号

注册

我同意用户协议

忘记密码

用户协议

绑定手机号

近期有不法分子打着爱盈利的旗号,制作“爱盈利”名称的App,并伪造爱盈利证件,骗取用户信任,以抖音点赞赚钱或其他方式赚钱为名义,过程中以升级会员获得高佣金为名让用户充值。
爱盈利公司郑重声明:我司没有研发或运营过任何名为“爱盈利”的APP,我司做任务赚钱类产品从没有让任何普通用户充值升级会员。我公司产品均在本网站可查询,请将网站拉至底部,点击“关于我们”可查看爱盈利相关产品与服务。
温馨提示:当遇到此类问题请拨打官方电话或添加官方微信,以免财产损失。爱盈利官网地址:www.aiyingli.com。
  • 推广与合作
X

小程序丨swiper组件取消自动播放,获取当前的current出现bug

来源: 6614

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事件。

网友回复:

L***:

感谢反馈。


Q: current不一致?

A: 无论取消自动播放与否,data.current永远是使用setData设置的current,而不是swiper实际的current。


Q: checkbox事件后仍有可能触发handleSwiper?

A: 是的。这是因为JS运行于一个独立线程。从在JS中使用setData设置current值,到current值被应用到swiper,会有一小段时差。这段时间内,swiper仍可能触发change事件。

荆***:

对于这个一小段时差,如何处理这个swiper仍可能触发change事件。

L***:

这个没什么好办法,只能具体问题具体处理了,比如在你的这个例子里面,在handleSwiper中检查一下that.data.autoplay,如果是false的话就可以认为checkboxChange是已经执行过了的。

荆***:

我已尝试这种方法,这样会带出另外一个问题的。

荆***:

在handleSwiper中检查一下that.data.autoplay,如果使用手动切换的话,that.data.autoplay本身就是为false,还是需要执行handleSwiper里面的代码来展示当前current的数据

L***:

我这只是说个方向而已,具体怎么做还得根据你具体的情况来决定哦。

荆***:

好的,谢谢

爱盈利(aiyingli.com)移动互联网最具影响力的盈利指导网站。定位于服务移动互联网创业者,移动盈利指导。我们的目标是让盈利目标清晰可见!降低门槛,让缺乏经验、资金有限的个人和团队获得经验和机会,提高热情,激发产品。

评论

相关文章推荐

SELECT dw_posts.ID,dw_posts.post_title,dw_posts.post_content FROM dw_posts INNER JOIN dw_term_relationships ON (dw_posts.ID = dw_term_relationships.object_id) WHERE 1=1 AND(dw_term_relationships.term_taxonomy_id = 5246 ) AND dw_posts.post_type = 'post' AND (dw_posts.post_status = 'publish') GROUP BY dw_posts.ID ORDER BY RAND() LIMIT 0, 6

京ICP备15063977号-2 © 2012-2018 aiyingli.com. All Rights Reserved. 京公网安备 11010102003938号