最近使用微信小程序开发的时候,需要用scroll-view的bindscrolltolower事件,控制加载下一页的内容。但是发现在ios里,下拉滚动一次,事件触发两次,导致重复加载数据。
经过百度和亲身试验,可以采用用bool变量控制的方法解决这个问题:
1、在data中定义bool变量
//是否正在处理滚动事件,避免一次滚动多次触发
isScrolling:false
2、bindscrolltolower事件处理函数中,进入时判断是否正在处理,并设置isScrolling值为true;退出时设置isScrolling值为false
if(this.data.isScrolling===true)
return;
this.data.isScrolling=true;
//业务逻辑代码
..........
this.data.isScrolling=false;