微信小程序一次性事件实现
发布时间 :
阅读 :
场景
在开发原生小程序时,可能会一种场景,比如我对某一个点击事件,多次点击只触发一次,这是常见的once函数做的事情,但是如何用在小程序里面呢,下面给大家看看我的处理方法。
once函数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| function once(fn, context) {
return function() {
if (fn) {
fn.apply(context || this, arguments)
fn = null
}
}
}
|
小程序代码示例
1
| <view bindtap="click">点我</view>
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
| Page({
data: {},
result: null,
onLoad: function () {
this.result = once(this.actualClick, this)
},
actualClick() {
console.log(1)
},
click() {
this.result()
},
})
function once(fn, context) {
return function() {
if (fn) {
fn.apply(context || this, arguments)
fn = null
}
}
}
|
总结
once返回的函数要存起来,而且只存一次,并且要获取到page实例,所以需要在onload里面初始化。
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 jaytp@qq.com